【发布时间】:2015-08-16 20:04:06
【问题描述】:
我在客户端使用 JavaScript 进行了一些计算。
var 总计 = (((3 * 24) / 100) + 3); //结果是3.7199999999999998
我需要将这个3.7199999999999998 号码按原样存储在数据库中。
数据库在 MySQL 上,我对 ORM 使用 Doctrine 2,实体的精度设置为 /** @Column(type="decimal", precision=32, scale=16, nullable=false) * */,但保存后我看到数据库中只是数字 3.72,wtf 吗?经过一番检查,我发现学说使用floatval,在执行此floatval(3.7199999999999998) 后,您会得到3.72!为什么?
有解决办法吗?就像告诉教义不要使用 floatval 并按原样存储值?我也不想在这个专栏中使用 varchar。
提前致谢!
【问题讨论】:
-
我不是学说专家2。但你不能改变数据类型 tp
double.? -
不,我不能。结果是一样的
3.72
标签: javascript php doctrine-orm floating-point floating-accuracy