<?php

$num1 = 1494313163777;
$num2 = 9999;

//直接计算取余会出错,出现负数 -8779
//echo $num1 % $num2;exit;
//算上PHP一个BUG吧.最主要是PHP是个弱类型语言.他内置了机器来判断用户的类型.但是机器毕竟是机器.也有判断出错的时候.就像上面.所以这时候我们就需要人工干预下


/*
PHP取余默认为整数的.
而且当定义 $num1 = 1494313163777; 其实就已经溢出了.所以要加上强制类型转换.变成float类型.
但是这样还不够.因为 % 这个取模计算还是针对整数的.
所以我们需要一个函数fmod.是针对float类型的.
*/
$num1 = floatval($num1);

$luck_num = fmod($num1, $num2);

//显示38正确
echo $luck_num;


?>

 

相关文章:

  • 2022-12-23
  • 2021-07-11
猜你喜欢
  • 2021-10-20
  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
相关资源
相似解决方案