0

如果有人在某个地方问过这个问题,我很抱歉,但我找不到任何可以帮助我的东西。当我想添加数字并显示它们时,这是我较大程序的一部分,但是当我遇到数字0.6输出不“准确”时。我想将它们精确显示到小数点后一位。我怎样才能做到这一点?

源代码:

public class NumberTest {

    public static void main(String[] args){
        double n = 0.6;
        double sum = 0.0;
        for(int i = 0; i < 10; i++){
            System.out.println(sum);
            sum += n;
        }
    }
}

输出:

0.0
0.6
1.2
1.7999999999999998
2.4
3.0
3.6
4.2
4.8
5.3999999999999995
4

1 回答 1

3

不要使用 println 而是printf(...)因为 printf 允许格式化输出。

System.out.printf("%.1f%n", sum);

或使用 DecimalFormat 对象:

DecimalFormat df = new DecimalFormat("0.0");

System.out.println(df.format(sum));

是的,这是一个重复的重复问题......

于 2013-08-08T19:35:13.337 回答