这个是 php bug 么?

2014-11-05 16:29:16 +08:00
 sujin190
➜ admin git:(master) ✗ php -r "echo floatval('17.9')*100;"
1790 ➜ admin git:(master) ✗ php -r "echo intval(floatval('17.9')*100);"
1789

有什么好办法解决不?
3054 次点击
所在节点    问与答
7 条回复
chemzqm
2014-11-05 16:59:54 +08:00
只能说是坑吧
http://php.net/manual/en/function.intval.php
下面很多例子
mcfog
2014-11-05 17:18:29 +08:00
这不是PHP的Bug,而是浮点数的二进制表示的局限性

详见 http://www.laruence.com/2013/03/26/2884.html

至于解决方法,可以用bc_系列的方法,
xoxo
2014-11-05 18:49:31 +08:00
这是精度丢失

解决办法如楼上: bc_高精度计算库
mahone3297
2014-11-05 19:50:47 +08:00
这怎么能算是php的bug。。。
a591826944
2014-11-05 19:52:09 +08:00
这是 计算机的 bug
sujin190
2014-11-05 22:07:01 +08:00
@mcfog
@xoxo
学习了,感谢,发现python下也是一样的
tanteng
2017-12-15 16:59:07 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144158

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX