Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个div结果在php中是不同的_Php - Fatal编程技术网

为什么这个div结果在php中是不同的

为什么这个div结果在php中是不同的,php,Php,当我计算一个大数字的基数时,我发现了一些错误,intval($a/64)的结果大于intdiv($a,64),你能告诉我为什么吗?也许你也会写下深刻的原因,非常感谢。基于 intval通过截断小数将双精度转换为整数 数字的组成部分 在处理某些值时,这可能会产生奇怪的结果 这就是为什么您在第一个代码中得到…638 基于 返回被除数除以除数的整数商 这就是为什么在第二个代码中会得到…637。由于它只返回整数部分。如果您希望将精度计算为可变量并确保计算正确,则不应使用有问题的函数 对于此类计算,您需要

当我计算一个大数字的基数时,我发现了一些错误,intval($a/64)的结果大于intdiv($a,64),你能告诉我为什么吗?也许你也会写下深刻的原因,非常感谢。

基于

intval通过截断小数将双精度转换为整数 数字的组成部分

在处理某些值时,这可能会产生奇怪的结果

这就是为什么您在第一个代码中得到
…638

基于

返回被除数除以除数的整数商


这就是为什么在第二个代码中会得到
…637
。由于它只返回整数部分。

如果您希望将精度计算为可变量并确保计算正确,则不应使用有问题的函数

对于此类计算,您需要使用PHP的BCMath:

$a = 116278458266472831;
echo intval($a/64); // 1816850910413638
echo intdiv($a, 64); //1816850910413637