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

sum()クエリが小数点以下の結果を返すのはなぜですか?

    float データ型は、10進数の数値を表しません。数値は2進数で表されるため、数値の2桁は、16、8、4、2、1、1 / 2、1 / 4、1/3などの2の累乗を表します。

    「272.7」、「0.55」などと表示されている数値は、保存されている値を正確に表したものではありません。たとえば、「272.7」と表示されている番号は、実際には272.70001220703125である可能性があります。

    出力用の数値のフォーマットに使用されるルールは、正確な値を表示するために必要なすべての桁よりも少ない桁を使用することにより、これらの違いを隠すことができます。

    これらの数値を加算すると、実際の数値と近くの小数表現との差異は、差異間の偶然の変動に応じて拡大または縮小する可能性があります。あなたが見ている合計は、これらの追加の自然な結果です。




    1. テーブル値パラメータを変更する方法

    2. c#とmysql間のデータトラフィックを暗号化する

    3. ストアドプロシージャの結果セットから列を選択します

    4. データベースとファイルシステムへのファイルの保存