首页 > 解决方案 > 为什么这个 div 结果在 php 中不同

问题描述

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

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

标签: php

解决方案


基于intval() 手动用户贡献笔记

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

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

这就是你进入...638第一个代码的原因。

基于intdiv() 手册

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

这就是你进入...637第二个代码的原因。因为它只返回整数部分。


推荐阅读