为什么小数没有正确加起来?

joh*_*ohn 0 php floating-point decimal

我正在开发一个程序,你可以选择最多3个你要分配的东西.

举例来说,一个动作可以获得4分,并且在您选择的3个项目中分配这4个点.

在这种情况下,这三件事各得1.33333 ......分.

在我的数据库中,它们存储为1.33.

然而,当我把它们拿出来时,它的价格高达3.99.

可以理解的.

但是如果不给出1.34分之一的话,我怎么能避免这种情况呢?

QED*_*QED 5

将完整的float/double存储在数据库中,而不是截断到2个小数位.截断的时间是向用户显示值 - 但只截断显示的字符串,而不是实际值.

浮点值是令人讨厌的醉酒叔叔的计算.只要让它们成为现实,然后在向公众展示时清理它们.

  • "浮点价值是令人讨厌的醉酒叔叔的计算.只要让它们成为现实,然后在向公众展示时将它们清理干净." - 这是一个很棒的报价,我一定会偷 (3认同)