java double比较大小
来源:互联网 发布:九泰基金 知乎 编辑:程序博客网 时间:2024/05/18 01:23
double和float不能表达每个数值,他们是使用近似来表示值的。
考虑一下下面例子的输出内容
public classOne{ publicstaticvoidmain(String[] args) { double a = 1.000001; doubleb = 0.000001; doubled = a - b; System.out.println(d); System.out.println(d==1.0); }}
结果是false。Java程序员经常犯的一个错误是,在循环中使用浮点数和用==运算符检查条件,在最坏的情况下,这可能会创建一个无限循环,导致Java应用程序挂起。所以我们不应该用==进行精确比较,应该这样做:
public classOne{ publicstaticvoidmain(String[] args) { double a = 1.000001; doubleb = 0.000001; doubled = a - b; if(Math.abs(d-1.0)<= 0.000001) { System.out.println("the are equal"); } }}
对于double值,我们应该做计算而不是比较,总是比较近似而不是精确的值。例如:当需要比较值是不是等于10.00的时候,我们用是否> 9.95来表示,如下所示:
if (amount == 100.00) // Not Okif (amount > 99.995) // Ok
参考文档
http://www.java67.com/2015/09/float-and-double-value-comparison-in-java-use-relational.html
0 0
- java double比较大小
- java double比较大小
- java中比较double大小
- Java之两个double 比较大小
- double比较大小
- Double比较大小
- double比较大小
- java中比较float和double的大小
- 在JAVA中怎么比较Double类型数据的大小?
- java中比较float和double的大小
- 在JAVA中怎么比较Double类型数据的大小?
- java中比较两个double类型的数据大小
- 关于java中double类型的比较大小的问题
- Java中Integer/Long/Double/Float大小比较
- Java中double类型比较大小或相等的方法
- Java中double类型比较大小或相等的方法
- float double 比较大小问题
- double类型如何比较大小
- Handwritten digit recognition with ANNs
- JS_中Iterale
- STM32程序死在BEAB BKPT 0xAB解决办法
- BootStrapTable 隐藏列
- 扣减库存策略采用订单是否锁定库存方案
- java double比较大小
- hightchat图表展示
- 阶乘的和
- gdufe acm 1361 校庆抽奖
- 第十八套
- js数组去重与排序
- Urlrewrite入门学习(2017-02-12)
- JS 字符串的一些方法
- [BZOJ1355][Baltic2009][KMP]Radio Transmission