在 java 中添加 BigDecimal 数组的元素
Adding the elements of a BigDecimal Array in java
我是 Java 的新手,我在我的程序中遇到了这个错误,我无法在 BigDecimal 元素数组中添加元素。我成功地使用 Integer 和 Double 类型实现了它,但是当我将类型更改为 BigDecimal 时,它根本不起作用。
import java.math.*;
import java.util.*;
public class AddBigRealNumbers {
public static void main(String[] args) {
try{
Scanner von = new Scanner(System.in);
System.out.println("Enter the number of figures to be added:");
int numfig;
numfig = von.nextInt();
BigDecimal []nums = new BigDecimal[numfig];
System.out.println("Enter the elements:");
for(int i=0; i<numfig;i++){
nums[i]=von.nextBigDecimal();
}
System.out.println("The elements are: ");
for(int i=0; i<numfig;i++){
System.out.println(nums[i]);
}
BigDecimal sum=BigDecimal.ZERO;
for (BigDecimal i : nums)
sum += i;
System.out.println("The sume of these numbers is:"+sum);
}
catch(Exception e){
System.out.println("Your exception is:" +e);
}
}
}
你不能用 +
添加 BigDecimal,你必须使用它的 add()
功能。它也是不可变的,因此对整个加法使用相同的 BigDecimal 和是行不通的。
BigDecimal 不仅仅是 Integer 和 Double 等数字的另一个 class。
Because BigDecimal is immutable as LisaMM pointed out, you will need to increment your sum like so:
for (BigDecimal i : nums) {
sum = sum.add(i);
}
...
sum.add(i); <-- this wont't work
相反,我们需要将新的 BigDecimal 重新分配给 sum
,使用其当前值增加 i
。
BigDecimal sum = null;
for (int i = 0; i < lengthOfArray; i++) {
if (sum == null) {
sum = data[i];
} else {
sum = sum.add(data[i]);
}
}
我是 Java 的新手,我在我的程序中遇到了这个错误,我无法在 BigDecimal 元素数组中添加元素。我成功地使用 Integer 和 Double 类型实现了它,但是当我将类型更改为 BigDecimal 时,它根本不起作用。
import java.math.*;
import java.util.*;
public class AddBigRealNumbers {
public static void main(String[] args) {
try{
Scanner von = new Scanner(System.in);
System.out.println("Enter the number of figures to be added:");
int numfig;
numfig = von.nextInt();
BigDecimal []nums = new BigDecimal[numfig];
System.out.println("Enter the elements:");
for(int i=0; i<numfig;i++){
nums[i]=von.nextBigDecimal();
}
System.out.println("The elements are: ");
for(int i=0; i<numfig;i++){
System.out.println(nums[i]);
}
BigDecimal sum=BigDecimal.ZERO;
for (BigDecimal i : nums)
sum += i;
System.out.println("The sume of these numbers is:"+sum);
}
catch(Exception e){
System.out.println("Your exception is:" +e);
}
}
}
你不能用 +
添加 BigDecimal,你必须使用它的 add()
功能。它也是不可变的,因此对整个加法使用相同的 BigDecimal 和是行不通的。
BigDecimal 不仅仅是 Integer 和 Double 等数字的另一个 class。
Because BigDecimal is immutable as LisaMM pointed out, you will need to increment your sum like so:
for (BigDecimal i : nums) {
sum = sum.add(i);
}
...
sum.add(i); <-- this wont't work
相反,我们需要将新的 BigDecimal 重新分配给 sum
,使用其当前值增加 i
。
BigDecimal sum = null;
for (int i = 0; i < lengthOfArray; i++) {
if (sum == null) {
sum = data[i];
} else {
sum = sum.add(data[i]);
}
}