2011-12-18 7 views
0

私はデータを格納する配列を持っています。私が2つの配列を引くと、私は非常に大きな数になります。ここでは、このコードの出力は-1あるべき無限の数を返すPHP減算

$i[1] = 2.14; 
$i[2] = 2.15; 
$diff = $i[1] - $i[2]; 
echo $diff; 

例であるが、代わりに、私は-0.0099999999999998を取得していますか?私が作成しているコードでは、正確に数字が必要です。なぜこれが起こっているのか、どのように修正できるのか誰にも分かりますか?
ありがとうございました

+2

ref:http://en.wikipedia.org/wiki/Floating_point – Yoshi

+0

[浮動小数点数の精度問題への対応]の可能な複製(http://stackoverflow.com/questions/590822/dealing-with-浮動小数点数の精度問題) – mario

+1

@marioこれはPHPの問題解決にはあまり役立ちません – Hamish

答えて

5

これは、浮動小数点演算で不正確さが導入されたためです。

任意の精度操作については、BCMath in the manualを参照してください。