我有一个简单的PHP任务,总结所有数字的数字。
$number = 345;
$digit = $number;
$sum = 0;
while ($number > 0) {
$digit = $number % 10;
$sum += $digit;
$number /= 10;
}
此解决方案将给出正确的结果。但是,我知道它将进入超过three times的循环方式。最终它将等于零。
为什么会这样?在什么时候,浮点数变为零?仅仅遵循数学原理,这将是一个无限循环,对吧?并且由于有超过3,4和5位数字,最终结果如何不超过12(即使是少量)。
P.S。我知道我应该通过舍入$number
值来解决这个问题,但我只关注浮点数及其行为。
答案 0 :(得分:0)
当您更新号码时,您应该真的这样做
$number -= $digit;
$number /= 10;
浮动特定于平台,请查看此链接 http://php.net/manual/en/language.types.float.php