Java中Double类型的运算精度
2017-03-15 16:41
369 查看
这个问题的来源是《剑指Offer》这本书的第85页中提出的一个问题:
如何比较两个 Double 类型的数的大小?
看到这个问题,大家肯定会想到使用
那么如果你也是这么想的,就请接着看下面的这个小程序吧!
在 eclipse 上面的运行结果如何呢?相信你们肯定会大吃一惊。输出结果如下:
不相等
不相等
不相等
不相等
那么这是为什么呢?这就涉及到Double类型的精度问题了!有兴趣的可以参看一下这篇博客:http://blog.csdn.net/smcwwh/article/details/7080878
那么我们应该怎样去比较两个浮点数呢?
方法就是下面这个啦:
后面有关浮点数在计算机中的存储部分,以后再加补充!
如何比较两个 Double 类型的数的大小?
看到这个问题,大家肯定会想到使用
==啊!
那么如果你也是这么想的,就请接着看下面的这个小程序吧!
package question; /** * @author 白芷 * @time 2017/03/15 * @function Double 类型的精度问题 * */ public class Question10 { public static void compareDouble(Double num1,Double num2){ if(num1==num2){ System.out.println("相等"); }else{ System.out.println("不相等"); } } public static void main(String[] args) throws Exception { Double num1,num2; num1=0.05+0.01; num2=0.06; compareDouble(num1,num2); num1=1.0-0.36; num2=0.64; compareDouble(num1,num2); num1=1.235*100; num2=123.5; compareDouble(num1,num2); num1=123.4/100; num2=1.234; compareDouble(num1,num2); } }
在 eclipse 上面的运行结果如何呢?相信你们肯定会大吃一惊。输出结果如下:
不相等
不相等
不相等
不相等
那么这是为什么呢?这就涉及到Double类型的精度问题了!有兴趣的可以参看一下这篇博客:http://blog.csdn.net/smcwwh/article/details/7080878
那么我们应该怎样去比较两个浮点数呢?
方法就是下面这个啦:
public static void compareDouble 4000 (Double num1,Double num2){ if(Math.abs(num1-num2)<0.00000001){ System.out.println("相等"); }else{ System.out.println("不相等"); } }
后面有关浮点数在计算机中的存储部分,以后再加补充!
相关文章推荐
- 关于java中Double类型的运算精度问题
- java中Double类型的运算精度问题
- Java浮点类型(Double/Float)运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题(转)
- 关于java中Double类型的运算精度问题
- java中Double类型的运算精度丢失的问题 (小数点多出99999999999999)
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- java中Double类型的运算精度丢失的问题 (小数点多出99999999999999)
- 关于java中Double类型运算精度问题
- 关于 java 中 Double 类型的运算精度问题
- 关于java中Double类型的运算精度问题(转)
- java中Double类型的运算精度丢失的问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题