java如何对两个浮点数的大小进行对比呢?

书欣 Java经验 发布时间:2022-12-27 12:03:58 阅读数:6147 1
下文笔者讲述使用java代码对浮点数进行比较的方法分享,如下所示

浮点数简介

浮点数采用“尾数+阶码”的编码方式
类似于科学计数法的“有效数字+指数”
 表示方式
所以我们无法采用 == 的方式对其进行判断 
那么如何对浮点数进行判断呢?
    下文笔者将一一道来,如下所示
float a = 1.0f - 0.9f;
float b = 0.9f - 0.8f;

System.out.println(a == b);
---运行以上代码,将输出以下信息-----
false

 
float a = 1.0f - 0.9f;
float b = 0.9f - 0.8f;
Float x = Float.valueOf(a);
Float y = Float.valueOf(b);

System.out.println(x.equals(y));
---运行以上代码,将输出以下信息-----
false
那么如何进行比较呢?
使用差值范围比较
float a = 1.0f - 0.9f;
float b = 0.9f - 0.8f;
float diff = 1e-6f;
if(Math.abs(a-b) < diff){
    System.out.println("true");
}
---运行以上代码,将输出以下信息-----
true

笔者建议使用BigDecimal定义--然后进行比较

BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.9");
BigDecimal c = new BigDecimal("0.8");

BigDecimal x = a.subtract(b);
BigDecimal y = b.subtract(c);
System.out.println(x.equals(y));
---运行以上代码,将输出以下信息-----
true
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202212/16721138905209.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者