2016-08-11 10 views
0

PHPは非常に小さな数値を丸めずに処理できますか?たとえば、exp(-99) + 1/2を計算する場合、phpはこれを0.5と計算します。後で私が与えられた結果を掛けたいと思っているのであれば、これは問題です。PHPが小数を丸めるのを防ぐ

echo exp(-99) + 1/2 // Outputs 0.5 
+1

をPHPは」doesnの:あなたは本当にあなたがPHPの任意精度数学拡張子を使用することができます(彼らにを丸めずに、非常に小さな数字を扱う)、このような計算を行うために必要がある場合は、あなたの質問に答えるために

tエコー "1/2"。問題を強調する実際のコードと出力(a [mcve])を表示します。 –

+0

私のPHPエコーの@JonathonReinhartは '0.5'を返します。 @Joshhhは浮動小数点数について読んでいます - 彼らは** PRECISION **のようなものを持っています。それについて読む。そして覚えておいてください - 浮動小数点数はあなたの頭の中だけです。 0.5 $は50セントです。あなたはあなたの考えを変えるべきでしょうか? – ventaquil

答えて

0

浮動小数点数でサポートされている範囲外です。私のプラットフォームで

(PHPの浮動小数点数は64ビットです)echo exp(-99);戻りcurrectly 1.0112214926104E-43

指数部は、私が追加としてe^-99

しかしを表現するenought広いためだ... echo exp(-99)+0.5;私は0.5

を取得

あなたが期待する結果は、50桁以上の10進数を持つものになります。

二重浮動小数点には、そのような大きな仮数はありません(通常、上限は約18-20小数です)。

http://php.net/manual/en/book.bc.php

関連する問題