JAVA计算问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:15:37
为什么我出入的
public class Hello{
public static void main (String args[]) {

int testNumber = 10;
System.out.println((double) testNumber / 3);
}
}
返回结果是3.3333333333333335
请问为什么末位数是5而不是3呢?四舍五入的话应该是3啊

这个就应该是属于内部问题了.
他有他的计算方法.

Java中的简单浮点数类型float和double不能够进行精确运算。不光是Java,在其它很多编程语言中也有这样的问题。在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误。

解决方案:
1.四舍五入
2.采用BigDecimal来经行浮点数的精确计算

这是精度问题,如果你强制转换为float的话就能打出3.33333333了