sql >> データベース >  >> RDS >> Sqlserver

SQL Serverの数値、浮動小数点数、および小数の違い

    floatを使用します または本物 データ型は次の場合のみ 10進数によって提供される精度 (38桁まで)不十分です

    • おおよその数値データ型(表3.3を参照)は、多くの場合に指定された正確な値を格納しません。 数字; 非常に近いを保存します 値の概算。(Technet)

    • WHERE句の検索条件、特に=および<>演算子でfloatまたはreal列を使用することは避けてください。 float列とreal列を>または<の比較に制限することをお勧めします。 (テクネット)

    したがって、データ型として10進数を選択するのが最善の策です

    • あなたの番号はそれに収まります。 10進精度 は10E38[〜38桁]
    • Floatのより小さなストレージスペース(そしておそらく計算速度)はあなたにとって重要ではありません
    • 財務アプリケーション、丸めを含む操作、または同等性チェックなどでは、正確な数値動作が必要です。 (テクネット)
    1. 正確 10進数および数値の数値データ型-MSDN
    • 数値=10進数(5〜17バイト)
      • .NETではDecimalにマップされます
      • SQLサーバーのデフォルト(精度、スケール)パラメーターとして両方に(18、0)があります
      • scale=小数点の右側に格納できる小数点以下の最大桁数。
      • money(8バイト)とsmallmoney(4バイト)も正確なデータ型であり、.NETではDecimalにマップされ、小数点以下4桁(MSDN)になります
    1. おおよそ 数値データ型floatおよびreal-MSDN
    • 実数(4バイト)
      • .NETではシングルにマップされます
      • realのISO同義語はfloat(24)
    • フロート(8バイト)
      • .NETではDoubleにマップされます

    • すべての正確 数値タイプは、使用されているプロセッサアーキテクチャの種類に関係なく、数値の大きさに関係なく、常に同じ結果を生成します。
    • floatデータ型に提供されるパラメーターは、浮動小数点数の仮数を格納するために使用されるビット数を定義します。 。
    • 概算の数値データ型は通常、使用するストレージが少なく、速度が優れています(最大20倍)。また、.NETで変換された時期も考慮する必要があります
    • C#のDecimal、Float、Doubleの違いは何ですか
    • 10進数と2倍の速度
    • SQL Server-.NETデータ型マッピング(MSDNから)

    主な情報源 :MCTSセルフペーストレーニングキット(試験70-433):Microsoft®SQLServer®2008データベース開発-第3章-テーブル、データ型、および宣言型データ整合性レッスン1-データ型の選択(ガイドライン)-ページ93

    >

    1. AndroidのデータとUI間の緩い結合のベストプラクティス-アダプター、フィルター、CursorLoader、ContentProvider

    2. Javaクラスからテーブルタイプとしてパラメータなしでプロシージャを呼び出す方法

    3. HOUR()の例– MySQL

    4. MariaDBにデータを挿入するときの「エラー1136(21S01):列数が行1の値数と一致しない」を修正