2017-11-03 6 views
1

非常に小さい数値での正確な演算にはbcmathを使用したいが失敗する。私はcryptocurrencyの価格を計算しようとbcmathは整数にfloatを変換するよりも優れていると考えています非常に小さな数値のbcmath演算

この作業:

PHP>エコーをnumber_format(0.000005 * 0.0025、10);

0.0000000125

そして、これが動作していません。

PHP>エコーをnumber_format(bcmul(0.000005、0.0025、10)、10);

0.0000000000

PHP>エコーをnumber_format(bcadd(0.000005、0.00000025、10)、10)。

0.0000000000

bcmathのためのいくつかの構成があるのか​​、これは正常な動作ですか?

+0

に言ったように、文字列と数値を包む[ここ](http://php.net/manual/en/function.bcmul.php)役立つだろう –

答えて

2

文字列としてbc *関数の引数を渡す必要があります。さもなければ、彼らはネイティブフロートとして解釈され、その限界に従う。

echo bcmul('0.000005', '0.0025', 10), "\n"; 
echo number_format(bcmul('0.000005', '0.0025', 10), 10), "\n"; 

出力:

0.0000000125 
0.0000000125 
関連する問題