我有一个简单的问题,但相当复杂,我可以使用一些建议来解决它。 我一直在尝试之前提出的所有问题的解决方案,但它们似乎都没有用。
echo dechex(0.258068 * 1000000000000000000); //returns 394d77a8be54020
但正确的值是
394D77A8BE54000
如何将其转换为正确的值,我理解是一个大整数,这是一个问题,但我怎样才能在我的脚本中获得正确的值?
答案 0 :(得分:0)
你是对的:你得到浮点不准确错误。请注意,0.258068 * 1000000000000000000
是浮点数,而不是整数。
这是一个解决方案:
echo 0.258068 * 1000000000000000000;
echo PHP_EOL;
$i = bcmul(0.258068, 1000000000000000000);
echo $i;
echo PHP_EOL;
$h = dechex($i);
echo $h;
结果:
2.58068E+17
258068000000000000
394d77a8be54000
参考文献: