0
私はすべての数値の桁を集計する簡単な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
の値を丸めてこれを解決すべきだと知っていますが、私は浮動小数点数とその振る舞いについてはちょっと面倒です。あなたは、あなたが本当にこの
$number -= $digit;
$number /= 10;
フロートはプラットフォーム固有のものでやるべき数を更新し、このリンク http://php.net/manual/en/language.types.float.php
をチェックアウト