java中不常见的关键字:strictfp
2024-09-01 10:55:19
1.strictfp, 即 strict float point (精确浮点)。
strictfp 关键字可应用于类、接口或方法。使用 strictfp
关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口
使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是
IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。
如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.
例子如下:
不使用strictfp的例子:
public class TestNoStrictfp {
private static double aDouble = 0.0555500333333212d;
private static float aFloat = 0333000000222f; public static void main(String[] args) { double cDouble = aDouble / aFloat; System.out.println("aDouble:" + aDouble);
System.out.println("aFloat:" + aFloat);
System.out.println("cDouble:" + cDouble);
} }
使用strictfp的例子:
public strictfp class TestStrictfp {
private static double aDouble = 0.0555500333333212d;
private static float aFloat = 0.0333000000222f; public static void main(String[] args) { double cDouble = aDouble / aFloat; System.out.println("aDouble:" + aDouble);
System.out.println("aFloat:" + aFloat);
System.out.println("cDouble:" + cDouble);
} }
运行结果:
不使用strictfp的例子运行结果:
aDouble:0.0555500333333212
aFloat:3.33000016E11
cDouble:1.6681690896577544E-13
使用strictfp的例子运行结果:
aDouble:0.0555500333333212
aFloat:0.0333
cDouble:1.668169110346482
最新文章
- 算法与数据结构(十四) 堆排序 (Swift 3.0版)
- SQL Server性能计数器收集汇总方案(Reporting Service)
- LeetCode之412. Fizz Buzz
- Python核心编程练习题笔记: type(a)==type(b) 和 type(a) is type(b)的差别
- chrome插件——Vimium 键盘手福利
- 【资料分享】 OpenCV精华收藏
- netbeans 调试 php
- android Json 使用
- Hibernate中的session对象update方法的使用
- problem 1 -- Two sum
- mvc分层的原理
- cf703A Mishka and Game
- iOS编程之前
- Python 学习之路
- Java-----关于eclipse导入项目发生的问题及解决办法
- CRM客户关系管理系统(十)
- 字符串----hiho字符串(尺取法)
- hive视图
- GridControl简单属性操作
- 环境搭建(Python)