我的问题是小数部分舍入不好。我在循环中保存数据。只有最后更新的项目被错误地更改。
例如 - 保存的号码是 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)
您不会获得这种舍入效果,但它会使用两倍的存储空间。
于 2013-08-12T10:35:51.690 回答