Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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_Math_Arraylist_Bigdecimal - Fatal编程技术网

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

Java 获取包含复数小数的数组列表的和,java,math,arraylist,bigdecimal,Java,Math,Arraylist,Bigdecimal,我是Java的新手,正在寻求帮助。我有一个数组列表,如下所示: 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.print

我是Java的新手,正在寻求帮助。我有一个数组列表,如下所示:

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。我的问题是如何执行此操作以使我的答案正确?

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

发动机罩下
sumlefit+=i做了类似的事情

sumleet=sumleet+(int)i


因此,您看到的问题。

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

请注意,尽管计算机术语中的双精度有限,而且会以奇数的方式表示您的数字。如果精度很重要,您需要使用像
BigDecimal
这样的东西


您可能知道,
int
表示“整数”,即不含小数成分的整数。语言有时会进行隐式类型转换,因此,当存储值的变量是一个
int
时,当您的数字是
double
类型时,小数点后的部分会被截断


正如其他人所说,将
sumlefit
更改为double可以避免这种情况。

使用
double
而不是
int