java.lang.Mathとjava.lang.StrictMathはどう違うのですか?
質問
明らかに
java.lang.StrictMath
には追加の関数(双曲線など)が含まれており、その関数は
java.lang.Math
にはありませんが、両ライブラリにある関数に違いはあるのでしょうか?
どのように解決するのですか?
のJavadocは
Math
クラスの Javadoc には、2 つのクラスの違いに関するいくつかの情報があります。
のいくつかの数値メソッドとは異なり クラス
StrictMath
の数値メソッドとは異なり、すべての実装は の同等の関数の実装はすべてMath
が同じ結果を返すとは定義されていません。 はビットごとに同じ結果を返すとは定義されていません。この この緩和により,より性能の良い より良い実装を可能にします。 この緩和により、厳密な再現性が要求されない場合、より性能の良い実装が可能になります。デフォルトでは、多くの
Math
メソッド にある同等のメソッドを単に呼び出すだけです。StrictMath
の同等のメソッドを呼び出すだけです。 コード生成者は プラットフォーム固有のネイティブライブラリや マイクロプロセッサの命令 より高性能な実装を提供するために の実装をより高い性能で提供することが推奨されます。Math
メソッドを実装することができます。そのような高性能の の仕様に準拠する必要があります。 の仕様に準拠しなければなりません。Math
.
そのため
Math
クラスは、特定の操作がどうあるべきかというルールを定めていますが、そのルールは
正確
を要求するものではありません。
これによって、たとえば
Math.cos
クラスが呼び出された場合、全く同じ結果ではなく、似たような結果を返すことができます。これにより、プラットフォーム固有の実装 (x86 浮動小数点の使用と SPARC 浮動小数点の使用など) が可能になり、異なる結果を返す可能性があります。
(参照) ソフトウェアの実装 のセクションを参照してください。 正弦波 のセクションをご覧ください)。
しかし
StrictMath
では、異なる実装によって返される結果
は
は同じ結果を返さなければなりません。これは、異なるプラットフォームでの結果の再現性が求められるインスタンスに望ましいでしょう。
関連
-
無効な文字定数
-
Junitのユニットテストはjava.lang.Testを報告します。
-
eclipse にリソースリーク:'in' が閉じない
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
SocketException java.netの4つの例外解決策。
-
Java基礎編 - オブジェクト指向
-
代入の左辺は変数でなければならない 解答
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
Java:未解決コンパイル問題の解決方法
-
Zipファイルの圧縮・解凍にantを使用する
-
ApiModel と @ApiModelProperty の使用法