1
私は金融アプリケーションに取り組んでいます。私はdouble(30,20)のように20に小数を格納します。私は計算中に奇妙な問題を抱えています。私はLaravel5.2を使用しています。 PHP、Laravel、エクセルnumber_format計算に奇妙な問題があります
Input1 = 280.95000000000000
Input2 = 278.76250000000000
// Results Number_format to 14
$result = Input1 - Input2;
PHP = 2.18750000000000
Laravel = 2.18750000000006
Excel = 2.18749999999994
これら三つの異なる結果の効果最終%の結果に
3つの異なる結果。なぜこれが違うのか誰にでも分かります。
が、それは、二重保存することができている(30,20) –
あなたが(バイナリで)0.1〜100小数点以下の桁を持つことができ、それはまだ不正確になります。 http://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/純粋な数学では、すべての小数は同等の2進数を持ちます。浮動小数点数学では、これは真実ではありません。 –