私の問題は、小数部分の丸めが悪いことです。ループにデータを保存します。最後に更新されたアイテムのみが誤って変更されます。
たとえば、保存された番号は 13778.12888 で、表の値は 13778,1 です。保存:$this->save($data) - debug($data)
正しい値を表示します。
質問する
303 次
1 に答える
0
FLOAT(n)
n が 25 未満であると定義された浮動小数点型の列を選択すると、MySQL は出力を有効桁数 6 桁に丸めるように見えますが、これは明らかに驚くべきことです。ただし、値はIEEE 単精度浮動小数点数の完全な精度で格納されます。完全な精度で値を取得するには、0 を追加するような単純なトリックを使用できます。見てみな:
create table numbers (f float(24));
insert into numbers set f = 12345678;
select f from numbers;
-- 12345700
select f + 0 from numbers;
-- 12345678
倍精度型FLOAT(53)
を使用すると、この丸め効果は得られませんが、2 倍のストレージが使用されます。
于 2013-08-12T10:35:51.690 に答える