gpt4 book ai didi

javascript - PHP floatval 奇异解析

转载 作者:行者123 更新时间:2023-11-30 12:22:20 24 4
gpt4 key购买 nike

我在客户端使用 JavaScript 进行了一些计算。

var total = (((3 * 24) / 100) + 3); //result is 3.7199999999999998

我需要将这个 3.7199999999999998 号码原样存储在数据库中。数据库在 MySQL 上,我对 ORM 使用 Doctrine 2,实体的精度设置为 /** @Column(type="decimal", precision=32, scale=16, nullable=false) * */,但保存后我看到数据库中只有数字 3.72,wtf?经过一些检查,我发现 doctrine 使用 floatval 并且在执行此 floatval(3.7199999999999998) 后,您将得到 3.72!为什么?

有解决办法吗?就像告诉教义不要使用 floatval 并按原样存储值一样?我也不想在此列中使用 varchar。

提前致谢!

最佳答案

3.72 是正确的值。 3.7199999999999998 结果是由于 JavaScript 中的浮点不精确(参见:How to deal with floating point number precision in JavaScript?)。我建议使用 toFixed()在您的 JavaScript 代码中避免这种情况。

var total = (((3 * 24) / 100) + 3).toFixed(2);

关于javascript - PHP floatval 奇异解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com