java程序中,我定义double类型来计算为什么不精确?

程序是这样的:
public class Pra1{ public static void main(String [] args){ double d=2.6; d = d - 2; System.out.println(d); }}结果:

结果这么长一串什么东西啊,,,,求解啊,各位大神们

import java.math.BigDecimal;

public class Test {
    public static void main(String[] args) {
        System.out.println(2.6d - 2d);
        BigDecimal bd1 = BigDecimal.valueOf(2.6d);
        BigDecimal bd2 = BigDecimal.valueOf(2d);
        System.out.println(bd1.subtract(bd2));
    }
}

使用BigDecimal类来进行精确小数计算,使用BigInteger来进行无限位的整数计算。

这两个类提供了加减乘除等各种方法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-02
flout精确位数是7,double是15还是16,超过这个范围后就不准确了
第2个回答  2014-04-02
忘了双精度最多能表达几位了。但是肯定要比你这个小。你要取小数点后4位,之后的就不准确了追问

那进行这种小数计算的时候怎么才能计算准确呢,谢啦

相似回答
大家正在搜