1

任意の精度のbcmath拡張機能を使用する Number クラスを持つ PHP ライブラリを作成しています。

2 つの質問があります。

  1. 組み込みの int 型と float 型を使用する場合と比較して、bcmath はどのくらい遅くなりますか?

  2. bcmathオプションのscale 引数があります(デフォルトは 3 桁です)。誰でも使用できる汎用 Number クラスの場合、適切な精度レベルはどれくらいですか? Perl のような (任意の精度の数値を持つ) 言語は、スケールをどのように処理しますか?

4

1 に答える 1

1

サポートする必要がある数値の範囲を決定します。組み込みの値は、計算や他の形式との変換が必要な値よりも高速です。

組み込みの整数は、どのシステムでも 32 ビットまで有効ですが、64 ビット値をサポートするシステムもあります。定数 PHP_INT_MAX の値を確認することでシステムがサポートするものを確認し、その後数学ライブラリのオーバーヘッドを負担するかどうかを判断できます。32 ビット整数のシステムでは、32 ビットを超えるものはすべて自動的に float に変換されます。round、printf、modulus などの組み込み関数を使用していない限り、これは問題になりません。

モジュラスを使用して自分のサイトに来るトラフィックを分割し、sprintf で %d を使用して整数をフォーマットすることに少し悩まされました: http://af-design.com/blog/2009/10/28/php-64-bit-整数モジュラス-ほぼ/

于 2010-02-18T08:05:17.083 に答える