Java中 两个double型数字相乘的问题,想不明白是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中 两个double型数字相乘的问题,想不明白是怎么回事相关的知识,希望对你有一定的参考价值。

在myEcilpse或者Eclipse中,有这样一个main方法

public static void main(String[] args)
System.out.println(6.86*10);


这个方法执行后的结果应该输出:68.6
但是事实却是输出的这样的结果:68.60000000000001

这是为什么?(不止这么一个有问题,仅1000之内有好多数和6.86相乘都会有类似的问题)谁能告诉我为什么会这样?

java 中的浮点数运算会出现精度丢失的结果 这是因为他们运算的时候是转换成2进制运算的 所以得到的结果太大 无法表示造成的 避免这种结果的话 就要用LS那位的方法了 参考技术A 计算机是二进制的,而小数转成二进制时会出现除不尽的问题
你要想计算精确得用这个类:BigDecimal本回答被提问者采纳

以上是关于Java中 两个double型数字相乘的问题,想不明白是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

Java中有啥方法能使大于long 的两个数相乘???

求两个大整数相乘的积,数字长度在127个字符之内。

java中2个或多个数字变量直接相乘相加减运算

java中两个Double型数据可以用(>,<,==,>=,<=)进行比较吗? 请详细说明

java中,怎么讲一个double型数字,转化为一个String字符串?

Java String型数字比较问题