【发布时间】:2017-09-18 06:54:40
【问题描述】:
我在将这个特定数字10.12 转换为整数时遇到问题。下面是我尝试过的代码 sn-p 以及结果如何。请告知这是否是一个错误,如果我可以帮助报告它。
<?php
echo "This is the problem, im expecting 1012". PHP_EOL;
echo intval((floatval("10.12") * 100)) . PHP_EOL; //1011
echo "Just Floatval". PHP_EOL;
echo (floatval("10.12") * 100) . PHP_EOL; //1012
echo "Convert to string (other number)". PHP_EOL;
echo intval((floatval("11.12") * 100)) . PHP_EOL; //1112
echo "Convert to string (other number)". PHP_EOL;
echo intval((floatval("10.13") * 100)) . PHP_EOL; //1013
echo "Use bcmul instead". PHP_EOL;
echo bcmul("10.12", 100) . PHP_EOL; //1012
我还创建了一个 sn-p 在 https://3v4l.org/cnIfL
【问题讨论】:
-
我敢打赌这是浮点数的二进制问题。没有全部阅读,但我认为这个答案正在谈论它。刚刚看到计算,我想剩下的就是对问题的解释。 stackoverflow.com/a/27539234/5159168 。对。我刚读完。此问题与我链接的问题重复。