いやマジハマりました……。
健康系のサイトの開発の最中。健康のためにはいろんな数値があるわけですよ、なんか知らんけど。なので、ぜーーーんぶ足しても1に満たなかったら警告だしてね、って。まぁ親切じゃないですか。
でも、ピッタリ1なのに、警告が出る。
-bash-3.2$ php -a Interactive shell php > echo 1 - (0.2 + 0.7 + 0.1); 1.1102230246252E-16
深ーーーく調べてみたら、PHPのバグなのね、ってどこぞの外人さんも困ってたようです。
Bug #51518 [Bgs]: should add to zero, but gets 1.1102230246252E-16 instead
Description:
------------
Math error for code that should be returning zero, but instead returns 1.1102230246252E-16 on multiple systems using multiple versions of PHP.
苦手な英語で読み進めたんだけど、まぁようするに、「浮動小数点数をちゃんと理解しろ」とのこと。
ハイ、すんませんでした。
//8桁まで監視しときゃ大丈夫だろ!? $shorten = round($goal - $value, 8);
ってところで急場を凌いてみたんだけど、大丈夫かしらん。