Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-为什么我';我得到了这个奇怪的答案_Java_Scala_Jvm - Fatal编程技术网

Java-为什么我';我得到了这个奇怪的答案

Java-为什么我';我得到了这个奇怪的答案,java,scala,jvm,Java,Scala,Jvm,为什么我会得到这个奇怪的答案? 35458.450000000004而不是35458.45 使用java6、7和8 public static void main(String[] args) { double[] as = new double[]{ 1000.0, 1174.0, 1000.0, 2131.0, 240.0, 390.0, 21524.15, 6426.5, 1272.8, 100.0, 200.0}; double v = 0; for

为什么我会得到这个奇怪的答案?
35458.450000000004而不是35458.45
使用java6、7和8

public static void main(String[] args) {
    double[] as = new double[]{ 1000.0, 1174.0, 1000.0, 2131.0, 240.0,
      390.0, 21524.15, 6426.5, 1272.8, 100.0, 200.0};

    double v = 0;
    for(int i = 0; i < as.length; i++) {
        v += as[i];
    }

    System.out.println(v);
}

double
float
在转换为十进制表示时受内部二进制表示的影响

如果需要任意精度的算法,则需要使用:

不可变,任意精度有符号十进制数


double
float
在转换为十进制表示时受内部二进制表示的影响

如果需要任意精度的算法,则需要使用:

不可变,任意精度有符号十进制数


这是您正在使用的类型。使用
BigDecimal

这是您正在使用的类型。使用<代码> BigDecimal < /代码>

<代码>双< /代码>不是无限的,如果需要Peles小数计算考虑选择<代码> BigDecimal <代码>类,而不是<代码>双< /代码>刚刚读取。这个精确的问题大约被问了一百万次。请至少在发布一个问题之前先进行一次搜索。参见:<代码>双< /代码>并不是无限的,如果你需要Peles小数计算考虑选择<代码> BigDecimal <代码>类,而不是<代码>双< /代码>刚刚阅读。这个精确的问题大约被问了一百万次。在发布问题之前,请至少先进行搜索。另请参阅:和。
    scala> val as = List(1000.0, 1174.0, 1000.0, 2131.0, 240.0, 390.0, 21524.15, 6426.5, 1272.8, 100.0, 200.0 );
    scala> as.sum
    res3: Double = 35458.450000000004