java如何对两个浮点数的大小进行对比呢?
下文笔者讲述使用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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。