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
原帖地址:https://baike.baidu.com/view/1866622.htm
最后更新:2017-04-03 20:19:32
上一篇:
java中的this关键字
下一篇:
hql基本查询语句
云计算十字真言及其在小博无线的实践
"0x00a1bdb3" 指令引用的 "0x00000001" 内存。该内存不能为 "read"。
面向对象的分析与设计
#文末福利|云栖大会门票限时赠送# 10.11云栖大会Clouder Lab “十分钟搭建共享应用”,手把手教你Serverless架构下的应用实现
上海虹口区凉城新村质量永恒自动门安装50930378
阿里云幸运券领取及优惠价格说明
深入阿里云大数据IDE–MaxCompute Studio
HTAP数据库 PostgreSQL 场景与性能测试之 40 - (OLTP+OLAP) 不含索引多表批量写入
在Entity Framework中使用存储过程(四):如何为Delete存储过程参数赋上Current值?
使用资源本地化 ASP.NET 网页