dechex函数输出错误的结果

时间:2018-01-15 00:25:22

标签: php linux 64-bit php-7

我有一个简单的问题,但相当复杂,我可以使用一些建议来解决它。 我一直在尝试之前提出的所有问题的解决方案,但它们似乎都没有用。

echo dechex(0.258068 * 1000000000000000000); //returns 394d77a8be54020

但正确的值是

  

394D77A8BE54000

如何将其转换为正确的值,我理解是一个大整数,这是一个问题,但我怎样才能在我的脚本中获得正确的值?

1 个答案:

答案 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

参考文献:

Live example

bcmul