java基础 —- 关键字 strictfp

java基础 —- 关键字 strictfp自 Java2 以来 Java 语言增加了一个关键字 strictfp 虽然这个关键字在大多数场合比较少用 但是还是有必要了解一下 strictfp 的意思是 FP strict 也就是说精确浮点的意思 在 Java 虚拟机进行浮点运算时 如果没有指定 strictfp 关键字时 Java 的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作 以致于得到的结果往往无法令你满意 而一旦使

自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。

strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个 类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确, 而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:

  1. 合法的使用关键字strictfp
strictfp interface A {} public strictfp class FpDemo1 { 
    strictfp void f() {} }
  1. 错误的使用方法
interface A { strictfp void f(); } public class FpDemo2 { strictfp FpDemo2() {} }

一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。

public class WordCount{ public static void main(String[] args) { float aFloat = 0.f; double aDouble = 0.084792d; 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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222039.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:42
下一篇 2026年3月17日 下午4:42


相关推荐

  • CAP原理详解「建议收藏」

    文章目录一、CAP原理介绍对CAP原理的一些常见的理解误区二、CAP原理简单证明三、CAP原理在各个系统的应用四、总结一、CAP原理介绍先简单介绍一下CAP原理是什么:C:Consistency即一致性,访问所有的节点得到的数据应该是一样的。注意,这里的一致性指的是强一致性,也就是数据更新完,访问任何节点看到的数据完全一致,要和弱一致性,最终一致性区分开来。A:Availability…

    2022年4月3日
    49
  • 红黑树与平衡二叉树的原理和区别

    红黑树与平衡二叉树的原理和区别一 平衡二叉树平衡二叉树或者是空树 或者是具有如下特征的二叉排序树 1 左子树和右子树的深度之差的绝对值不超过 1 2 左子树和右子树也是平衡二叉树 若将二叉树上结点的平衡因子 BalanceFacto BF 定义为该结点左子树和右子树的深度之差 则平衡二叉树上所有结点的平衡因子只可能觅 1 0 和 1 只要二叉树上有一个结点的平衡因子的绝对值大于 1 则该二叉树就是不平衡

    2026年3月26日
    3
  • 树莓派4b 镜像_用树莓派4b构建深度学习应用(一)硬件篇「建议收藏」

    树莓派4b 镜像_用树莓派4b构建深度学习应用(一)硬件篇「建议收藏」前言最近树莓派4b发布了8gb的版本,这么大的内存用在嵌入式设备上,简直是为了深度计算而生,果断入手了一块,遂开启了一轮踩坑之旅。为了避免重复网上已有的树莓派教程,后续系列文章,我尽量以2020年为基准,先打造一个最新最稳定的软硬件开发环境,再在其上构建AI应用。比如选择构建OpenCV4.4,pyTorch1.6和1.7,Tensorflow2.1,然后在上面跑yolov5应用…

    2022年5月7日
    41
  • XNA使用XML

    XNA使用XML整个周末都奉献给了 XNA 和 XML 和 生活大爆炸 虽然很想写一篇总结的 但是等不及去实现新的创意了 于是只好将 MSDN 上相关的内容直接 COPY 到这里了 简单易用哦 AddinganXMLC

    2026年3月26日
    2
  • 软件中的版权声明

    软件中的版权声明参考 1 关于网站版权声明 Copyright 的格式和写法 2 软件 Copyright 中年份有什么意义 格式 Copyright dates by author owner 典型说明如下 Copyright 2004AdobeSys Allrightsres 1995 2004Macromed Inc All

    2026年3月18日
    2
  • 计算机二级考试python怎么考_计算机二级python难度

    计算机二级考试python怎么考_计算机二级python难度2020.09.26更新:今天的二级python最后一个大题考试内容(部分),没考试的同学大家还可以最后挣扎一下。==========================================最新消息:2020年9月(第58次)全国计算机等级考试定于9月26日至29日举行。大家加油鸭!2020.8.15更新:==========2020.1.8更新:有同学问我的公共基础那10分是怎么拿到的,…

    2025年9月25日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号