dechex 函数输出错误的结果
dechex function outputs wrong result
我有一个简单但相当复杂的问题,我可以使用一些关于如何解决它的建议。
我一直在尝试之前提出的问题的所有解决方案,但 none 似乎有效。
echo dechex(0.258068 * 1000000000000000000); //returns 394d77a8be54020
但是正确的值是
394D77A8BE54000
我怎样才能将它转换成正确的值,我知道它是一个大整数,这是个问题,但是我怎样才能在我的脚本中获得正确的值?
你是对的:你遇到了浮点不准确错误。请注意 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
参考文献:
我有一个简单但相当复杂的问题,我可以使用一些关于如何解决它的建议。 我一直在尝试之前提出的问题的所有解决方案,但 none 似乎有效。
echo dechex(0.258068 * 1000000000000000000); //returns 394d77a8be54020
但是正确的值是
394D77A8BE54000
我怎样才能将它转换成正确的值,我知道它是一个大整数,这是个问题,但是我怎样才能在我的脚本中获得正确的值?
你是对的:你遇到了浮点不准确错误。请注意 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
参考文献: