克服了php数学限制,比如小数部分

时间:2014-02-05 08:44:24

标签: php math mathematical-optimization

那么你们如何在PHP中进行数学计算以确保获得正确的anwser?因为我们知道什么时候类型转换php会截断小数部分(* .999999)所以我们不会得到正确的答案,例如:

print ((0.1+0.7) * 10) //8
print (int) ((0.1+0.7) * 10) //7

解决方案将是:

print (int) round(((0.1+0.7) * 10)) //8

但是我不知道它是否是最好的解决方案,我问这个问题,因为现在大多数时候使用noSQL或其他东西时我们需要对数据进行类型转换,那么你们怎么做才能克服这些情况?

1 个答案:

答案 0 :(得分:0)

首先,你的问题强加了处理浮点值时PHP的错误。它不是。你遇到的问题无处不在,浮动数学就是用任何语言制作的。

一些用于财务计算的编程语言提供特殊值类型“money”或“decimal”,以保证浮点正确性。唯一相同的PHP是“任意精度数学”模块:http://de1.php.net/manual/en/book.bc.php

请注意,这对于每个值,性能以及如何将值传输到其他位置的存储有一些影响。

通常情况下,你对浮点值的不精确度相当不错。