获取包含复杂小数的数组列表的总和



我对爪哇的新手是新手,并在一些帮助下寻找。我的数组列表如下:

double number[]={19.1904990290,27.2646233344,51.4850317134}

我已经使用以下代码来汇总数组列表并将其打印到控制台:

int sumLeft = 0;        
System.out.println("Contents of leftside: " + number);
for(double i: number) sumLeft += i;
System.out.println("sum(left) = " + sumLeft);

我的结果是97。我的问题是我如何执行此操作,以便我的答案正确?

sumLeft定义为double。这将解决您的问题。

在引擎盖下 sumLeft += i;做了

之类的事情

sumLeft = sumLeft + (int)i;

因此,您看到的问题。

将sumleft定义为double将解决您的问题。

请注意,计算机术语的双倍数量有限,并且会以奇怪的方式表示您的数字。如果精度很重要,则需要使用诸如BigDecimal

之类的东西

http://en.wikipedia.org/wiki/floating_point#representable_numbers.2c_conversion_and_rounding

您可能知道, int表示"整数",即没有分数组件的整数。语言有时会执行隐式类型转换,因此,当存储该值的变量为例如int时,当您的数字类型double时,小数点后的部分被切碎。

正如其他人所说的那样,将sumLeft更改为双倍将避免这种情况。

相关内容

  • 没有找到相关文章