希望只是一个简单的问题。我的数据库中有一个DECIMAL
列。该值是一个非常小的小数部分 - 对所有行的此值求和将等于1。
现在我想在我的php应用程序中使用此值,显示它,对其执行计算并将其保存回数据库。
由于php只有integer
和float
类型,在php中使用该值的最佳方法是什么,以免在计算或显示中失去任何精度?
float
- 我知道php浮点数对于一个好的数字是精确的(取决于操作系统)由于
答案 0 :(得分:0)
你应该float
不要失去计算的精确度,并使用number_format
输出来显示......
备注:强>
如果您希望在第二个数字之后切割尾数或进行某种舍入,这实际上取决于您的需求以及您希望如何处理输出。
使用带有比例2的BC Math,例如2.10/1.10
使用时产生1.90
number_format(2.10/1.10, 2)
会产生1.91
(将结果四舍五入为SELECT CAST(2.10/1.10 as DECIMAL(10,2))
)
<强>更新即可。 如评论中所述,可能存在计算失败的情况。 在MySQL本身进行任意精度计算可能会更好,这样你就可以确保在数学运算期间没有任何东西被释放。