我在PHP中找到了浮点问题的一些解决方法:
php.ini设置 precision = 14
342349.23 - 341765.07 = 584.15999999992 // floating point problem
Run Code Online (Sandbox Code Playgroud)
php.ini设置,让我们说吧 precision = 8
342349.23 - 341765.07 = 584.16 // voila!
Run Code Online (Sandbox Code Playgroud)
演示:http://codepad.org/r7o086sS
这有多糟糕?
1.如果我只需要精确的2位数计算(金钱),我可以依赖这个解决方案吗?
如果没有,你可以在这个解决方案失败时给我一个明确的例子吗?
编辑:3.哪个php.ini.precision值最适合两位数,钱计算
@Baba答案是好的,但他用precision=20,precision=6在他的测试...所以还是我不知道是不是要去工作与否.
请考虑以下事项:
让我们说precision = 8,我唯一要做的就是加法+和减法-
A + B = C
A - B = C
问题1:对于0到999999.99之间的数字,精确解决方法是否会失败,其中A和B是带小数位的数字?如果是这样,请给我一个例子.
简单的测试可以完成这项工作:
// if it fails what if I use 9,10,11 ???
// …Run Code Online (Sandbox Code Playgroud)