背景

使用了“==”和“!=”来判断duble类型,使用sonar等代码规范扫描会报如下错误:Floating point math is imprecise because of the challenges of storing such values in a binary representation. Even worse, floating point math is not associative; push a float or a double through a series of simple mathematical operations and the answer will be different based on the order of those operation because of the rounding that takes place at each step.

原因

duble类型只可以判断大小,不可以判断是否相等,这样会失去精度,使判断没有意义。

解决方案

为两个duble类型的值设置误差,通过判断大小来判断是否相等,代码演示如下:

public static void main(String[] args) {double preErrorKey=1e-6; //1*10的-6次方即0.000001double key1=0.0000001d;double key2=0d;System.out.println(key1==key2); //结果是flaseSystem.out.println(Math.abs(key1-key2)<preErrorKey);    //允许一定的误差范围,判断结果为true}

double类型判断是否相等相关推荐

  1. qt之double类型判断

    一.前言 double类型不能判断相等,那么如何判断等于呢,见下文,脑瓜子疼啊,以为时bug,结果还是基础犯了错误.. 二.环境 windows10 qt57 三.正文 double类型的浮点数,保留 ...

  2. 深入理解C++浮点数(float、double)类型数据比较、相等判断

    深入理解C++浮点数(float.double)类型数据比较.相等判断 浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数.具体的说,这个实数由一个整数或定点数(即尾 ...

  3. java double转换符_java中字符串怎么转换成double类型

    展开全部 public class Demo { public static void main(String[] args) { Demo demo = new Demo(); String str ...

  4. java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...

    [单选题]若int x;且有下面的程序片断,则输出结果是() . for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "** ...

  5. 17.C#类型判断和重载决策(九章9.4)

    今天来结束第九章,聊下我们经常忽略,但是编译器会帮我们完成的"类型判断和重载决策",理解编译器如何帮我们完成,相信在写代码时会更明确,避免一些编译出错,排查的问题,让我们开发更给力 ...

  6. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  7. 7-7 硬币找钱问题 (10 分)(思路+详解+double类型数据的处理)Come baby!!!!!!!!!!!!!!!!!!!!

    一:题目 设有6 种不同面值的硬币,各硬币的面值分别为5 分,1 角,2 角,5 角,1 元,2元.现要用这些面值的硬币来购物.在购物中希望使用最少个数硬币.例如,1 次购物需要付款0.55 元,如果 ...

  8. JS 相等判断 / 类型判断

    相等判断 JavaScript提供三种不同的值比较操作: 严格相等 ("triple equals" 或 "identity"),使用 === , 宽松相等 ( ...

  9. java 判断类型_Java中类型判断的几种方式

    在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式.拉勾IT课小编为大家提供java种类型判断方式. instanceof instanceof是Ja ...

  10. android double值排序,android根据Double类型数据经纬度算出距离再根据距离实现排序功能...

    前言 项目中用到全国的加油站数据加载 并根据经纬度算出距离 然后根据距离从小到大排序 主要是数据类型是Double 这里必须对数据进行封装 实现也不难 这里讲一下自己的实现方法和实现思路 效果图 先来 ...

最新文章

  1. 服务器拷贝文件提示ms-dos功能无效,win7系统复制文件提示“MS-DOS功能无效”的解决方法...
  2. hankel--生成Hankel矩阵
  3. 使用Dockerfile制作镜像
  4. 中one_十月中大型SUV销量排行:途昂稳坐第一,理想ONE晋升亚军
  5. Linux下基于Libmad库的MP3音乐播放器编写
  6. nginx: [error] invalid PID number in /run/nginx.pid
  7. 三种常见的Python赋值表达式的写法!
  8. 他们曾是别人眼中的笑话,最后却都成了神话
  9. QueryRunner使用
  10. 网络介绍 > 网络连接 > 混合云网络
  11. python正则匹配11个数字_Python正则表达式匹配字符串中的数字
  12. pdo怎么建mysql表_PDO操作数据库的基本步骤
  13. java8官网下载地址
  14. 写一个SFTP工具类实现连接
  15. 安卓基础之ContentProvider
  16. VMware View 5.0-10–远程图形工作站配置篇
  17. windows搭建ftp服务器,及200 227 451错误解决
  18. 共享鸡皮疙瘩?庆应大学开发了一种贴身设备,利用腕带和颈带数据,分享刺激感受...
  19. Java中的四种XML解析方式(一)
  20. 数据结构(数组结构、链表结构)

热门文章

  1. 【011】Excel宏编程相关封装模块(新建文件、关闭文件、新增/删除工作薄)_004_#VBA
  2. android中截屏快捷键是什么,安卓手机怎么截屏?安卓手机截图快捷键功能图文详解...
  3. 【图片识别算法】黑白图片输出为二进制矩阵 --python代码
  4. 如何用计算机计算概率,计算器怎么算概率里面的A和C
  5. 计算机老是不断重启是什么原因,电脑一直自动重启是什么原因?(盘点电脑老是自动重启的原因!)...
  6. 服务器频繁重启怎么解决
  7. 码云上面优秀的java项目_极力推荐大佬的java项目的博客
  8. Elasticsearch教程(35) ik中文分词器+pinyin拼音分词器+同义词
  9. 极好的GoogleChrome插件下载网站(无需vpn)
  10. 百词斩不复习_不背单词和百词斩哪个好?