You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP浮点数取余运算未获预期结果求助

PHP计算浮点数余数的问题解决

你尝试用%运算符和bcmod()函数计算0.7除以5.1的余数,得到的结果都是0,但预期结果是0.7,问题出在这两个方法的特性上:

  • %是整数取余运算符,会自动将操作数转为整数:0.7转成0,5.1转成5,0%5的结果自然是0。
  • bcmod()函数默认仅支持整数运算,传入的小数会被截断为整数,同样会把'0.7'处理成0,'5.1'处理成5,结果还是0。

正确解决方法

方法1:使用fmod()函数

PHP提供了fmod()函数专门处理浮点数取余,直接传入浮点数就能得到正确结果:

echo fmod(0.7, 5.1); // 输出0.7

方法2:手动转换为整数计算

将小数放大为整数后取余,再还原为小数:

// 放大10倍转为整数(根据小数位数调整倍数)
$num1 = 0.7 * 10;
$num2 = 5.1 * 10;
$result = ($num1 % $num2) / 10;
echo $result; // 输出0.7

内容的提问来源于stack exchange,提问作者ASIF IQBAL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 21:37:03