Java における strictfp の主な機能は、浮動小数点変数が動作しているときにすべてのプラットフォームで同じ結果を提供することです。昔、James Gosling と彼のチームが Java を開発していたとき、Java 言語の主要な側面の 1 つはプラットフォームの独立性でした。異なるマシン上で同じコードをコンパイル、解釈、実行し、結果が同じであり、プロセッサによって操作されていないことを確認します。
さまざまなプラットフォームで浮動小数点を計算する場合、CPU による浮動小数点を処理するハードウェアの能力により、結果が異なる場合があります。 Strictfp は、すべてのプラットフォームで正確な浮動小数点出力を確実に取得できるようにします。浮動小数点演算の標準である IEEE 754 では、JVM 1.2 バージョンで strictfp が導入されました。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
さまざまな CPU では、標準精度が異なる場合があります。 x86 マシンの場合、32 ビットの精度は 62 ビットなどとは異なります。 strictfp を使用すると、同じコードが異なるプラットフォームで実行されるときに、精度の違いによって出力が操作されないようにすることができ、精度の高いプラットフォームでは正常に動作します。 strictfp は、浮動小数点 Strict を意味する FP Strict として理解してください。
strictfp は単純で、キーワード strictfp で始まります。以下は、クラス、インターフェイス、メソッドの構文です。
1.クラス
strictfp class sample1{ // code here will me implicitly strictfp. }
2.インターフェース
strictfp interface sample2 { // methods here will be implicitly strictfp }
3.メソッド
class India { strictfp void population() }
上記のサンプルでは、クラスとインターフェイスにキーワード strictfp を追加しただけです。上記の例は、strictfp キーワードを使用する必要がある方法を示しています。次に、strictfp キーワードを使用しない例を以下に示します。
class sample1{ strictfp float a; }
ここでは、strictfp キーワードを変数に代入しても機能しません。これは厳密にクラスまたはインターフェイスと一緒に渡されるものとします。
以下は Strictfp での実装例です:
次に、コード例で strictfp キーワードを実装して、その動作を示します。 以下は同じプログラムです:
コード:
public class Test { public strictfp double add() { double number1 = 10e+10; double number2 = 6e+08; return (number1+number2); } public static strictfp void main(String[] args) { Test example = new Test(); System.out.println(example.add()); } }
出力:
上記のコードの説明: クラス Test 定義から始めて、次に double データ型のメソッドを作成し、それに strictfp キーワードを割り当てました。 add() では、number1 とnumber2 という名前の double データ型の 2 つの変数を作成し、次の行で、メソッドはこれら両方の変数の加算を返します。その後、メイン クラスが作成されます。これにも strictfp が装備されており、内部のコード ブロックは strictfp プロパティを継承します。クラスの新しいオブジェクトを作成すると、最終的に、2 つの変数の加算値を単純に出力する出力 print ステートメントが得られます。
次に、同じ strictfp キーワードを異なるプログラムで使用する例を示します。ここでは計算は行いません。代わりに、float 変数に値を渡し、strictfp キーワードを使用して出力します。
コード:
public class new_strictfp { float f = 9.381f; strictfp public void displayValue(){ System.out.println(f); } public static void main(String[] args) { new_strictfp Demo = new new_strictfp (); Demo.displayValue(); } }
出力:
上記のコードの説明: これは、strictfp キーワードを実装した別の例です。 public クラスから始めて、float データ型と値を持つ新しい変数を作成しました。次に、float 値を出力するメソッドを作成し、メインクラスでクラスのオブジェクトを初期化しました。オブジェクトの後には、以前に作成したメソッドを呼び出す出力ステートメントがあります。ここで、作成されたメソッドは strictfp が有効になっており、割り当てられた浮動小数点値がそのまま出力されることを意味します。
他のプログラミング言語のキーワードと同様、Java の strictfp にはその用途とルールがあり、意図した結果を達成するには、指定されたルールに従う必要があります。 キーワードを実装する前に、いくつかのルールを理解しましょう。
上記のルールに従うことで、strictfp が適切に使用され、浮動小数点精度によって異なる結果が生じる可能性が回避されます。
キーワードによってもたらされる利点を以下に示します。 strictfp を使用する利点は、開発者の観点から見るとさまざまです。いくつかを以下にリストします:
Java の Strictfp キーワードが何であるかを理解した後、用途を検討し、このキーワードを使用しないようにしました。これは、IEE 754 の浮動小数点標準に従って、JVM 1.2 で導入されました。私たちは、strictfp キーワードを構文で示し、その後、例で実装しました。これは同じ結果を保証する修飾子です。
以上がJava の Strictfpの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。