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);

  }

  public static voidmain(String[] args)

  {

  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);

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

  }

  }

  示例输出

  float: 0.6710339

  double: 0.04150553411984792

  sum: 0.71253945297742238

 

 

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

 

时间: 2024-09-17 03:49:23

java关键字——strictfp的相关文章

java关键字(详解)

基本类型 1 boolean 布尔型 2 byte 字节型 3 char 字符型 4 double 双精度 5 float 浮点 6 int 整型 7 long 长整型 8 short 短整型 9 null 空 10 true 真 11 false 假 程序控制语句 1 break 跳出中断 2 continue 继续 3 return 返回 4 do 运行 5 while 循环 6 if 如果 7 else 否则 8 for 循环 9 instanceof 实例 10 switch 观察 11

JAVA 关键字及其作用解释

1. 访问控制 1) private 私有的 private 关键字是访问控制修饰符,可以应用于类.方法或字段(在类中声明的变量). 只能在声明 private(内部)类.方法或字段的类中引用这些类.方法或字段.在类的外部或者对于子类而言,它们是不可见的. 所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员.   2) protected 受保护的 protected 关键字是可以应用于类.方法或字段(在类中声明的

我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: [ { id: "NEW2016062800875700", from: "腾讯新闻客户端", qqnews_download_url: "http://inews.qq.com/m?refer=openapi_for_xiaotiancai",

Java 关键字super和this的使用及区别

"this",作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个特殊语法,不是变量,没有什么类型.  2.可以在一个类的非static成员内部使用,表示当前这个对象.此时,this就是一个final的普通变量,它有静态类型,就是这个类本身:它有动态类型,就是当前这个对象的类型.你可以对它调用成员函数,把它传递给别的函数等. "super"和"this"类似,但是也有

《Java 7程序设计入门经典》一1.15 Java关键字

1.15 Java关键字 目前,Java语言定义了50个关键字,见表1-1.这些关键字,包括运算符和分隔符的语法,形成了Java语言的基础.这些关键字不能用作变量.类.方法的名字. Java保留关键字const和goto,但是不使用它们.在Java发展的早期,还保留其他关键字以便未来使用.但是,现在的Java规范只定义了表1-1中展示的关键字. 除了关键字外,Java还保留了以下名称:true.false和null.这是Java预定义的值.不可以把这些名字用于变量.类等的命名.

Java关键字

Java中的关键字 Java 语言中有一些具有特殊用途的词被称为关键字.关键字对 Java 的编译器有着特殊的意义,在程序中应用时一定要慎重哦!! Java 中常用关键字: 注意:Java区分大小写 认识Java标识符   问:标识符是神马?   答:标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 使用标识符时,需要遵守几条规则:  1.  标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头.譬如:123name 就是不

Java关键字介绍之static

1.关键字static(先记住这些,再往下看) 1)静态方法和静态变量是属于某一个类,而不属于类的对象. 2)静态方法和静态变量的引用直接通过类名引用. 3)在静态方法中不能调用非静态的方法和引用非静态的成员变量.反之,则可以. 4)静态变量在某种程序上与其他语言的全局变量相类似,如果不是私有的就可以在类的外部进行访问. 2.何时使用static 在我们创建一个类的实例时(对象),通常使用new方法,这样这个类的数据空间才会被创建,其方法才能被调用. 但是,有时候我们希望一个类虽然可以被创建n个

Java关键字介绍之final

在Java中声明属性.方法和类时,可使用关键字final来修饰.final变量即为常量,只能 赋值一次:final方法不能被子类重写:final类不能被继承. 1.final成员 声明 final 字段有助于优化器作出更好的优化决定,因为如果编译器知道字段的值不会 更改,那么它能安全地在寄存器中高速缓存该值.final 字段还通过让编译器强制该字段为 只读来提供额外的安全级别. 1.1关于final成员赋值 1)在java中,普通变量可默认初始化.但是final类型的变量必须显式地初始化. 2)

Java关键字instanceof的两种用法实例_java

instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例.   举个例子: 复制代码 代码如下: public interface IObject { } public class Foo implements IObject{ } public class Test extends Foo{ } public class MultiStateTest {         public static void main(String args[])