天天看點

java關鍵字——strictfp

strictfp, 即 strict float point (精确浮點)。

strictfp關鍵字可應用于類、接口、方法。

使用 strictfp 關鍵字聲明一個方法時,該方法中所有的float和double表達式都嚴格遵守fp-strict的限制,符合ieee-754規範。當對一個類或接口使用 strictfp 關鍵字時,該類中的所有代碼,包括嵌套類型中的初始設定值和代碼,都将嚴格地進行計算。嚴格限制意味着所有表達式的結果都必須是 ieee 754 算法對操作數預期的結果,以單精度和雙精度格式表示。

如果你想讓你的浮點運算更加精确,而且不會因為不同的硬體平台所執行的結果不一緻的話,可以用關鍵字strictfp.

示例 1

下面的示例示範了一個使用 strictfp 修飾符聲明的類。

  public strictfp class myclass

  {

  public myclass(){}

  public static voidmain(string[] args)

  float afloat = 0.6710339f;

  double adouble =0.04150553411984792d;

  double sum = afloat +adouble;

  float quotient =(float)(afloat / adouble);

  system.out.println("float:" + afloat);

  system.out.println("double:" + adouble);

  system.out.println("sum:" + sum);

  system.out.println("quotient:" + quotient);

  }

  示例輸出

  float: 0.6710339

  double: 0.04150553411984792

  sum: 0.71253945297742238

  quotient: 16.1673355

示例 2

下面的示例示範了一個使用 strictfp 修飾符聲明的方法。

    public class myclass2

  public float afloat;

  public double adouble;

  public myclass2(){}

  public strictfp double add(float a, double b)

  return (a + b);

  myclass2 myclass2 = newmyclass2();

  myclass2.afloat =0.6710339f;

  myclass2.adouble =0.04150553411984792d;

  double sum =myclass2.add(myclass2.afloat, myclass2.adouble);

  system.out.println("float:" + myclass2.afloat);

  system.out.println("double:" + myclass2.adouble);

原帖位址:http://baike.baidu.com/view/1866622.htm