相关疑难解决方法(0)

我可以依赖PHP php.ini精确解决方案来解决浮点问题

我在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值最适合两位数,钱计算


  • 请注意我不能使用整数计算(浮点数*100 =美分),这太迟了.
  • 我不打算处理高于10 ^ 6的数字
  • 我不需要比较数字

UPDATE

@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)

php floating-point

28
推荐指数
2
解决办法
2万
查看次数

标签 统计

floating-point ×1

php ×1