为BigDecimal输入类型

时间:2012-01-03 07:20:56

标签: java string casting arraylist bigdecimal

我有一个方法返回类型为ArrayList<String>,它也读取相同类型的参数。现在我如何type cast或修改我的BigDecimal来读取该值?

public static ArrayList<String> currencyUtilArray(ArrayList<String> amountStr ) {
BigDecimal amount = new BigDecimal(ArrayList<String> amountStr);
//How do I define that the amountStr is ArrayList<String> and need to place in BigDecimal amount one after another till the end of the List 
    return amountStr;
}

或者我需要做什么

3 个答案:

答案 0 :(得分:1)

我认为你没有正确引用它。您不能将整个ArrayList作为字符串类型的AL转换为Big Decimal。

首先,从新的BigDecimal( - )中更改ArrayList amountStr;并从ArrayList中引用单个String。

意味着你必须遍历整个事物,将其添加到数量中:

BigDecimal amount = new BigDecimal(amountStr.get(0));
For(int i = 1; i < amountStr.size(); i++){
amount = amount.add(new BigDecimal(amountStr.get(i)));
}

我相信这应该会在你回来时给你所需要的东西。

答案 1 :(得分:1)

您无法输入StringBigDecimal反之亦然

如果数组中的字符串在连接时表示一个数字,那么执行以下操作:

 StringBuilder sb = new StringBuilder();
 for (String s : amountStr) {
     sb.append(s);
 }
 BigDecimal amount = new BigDecimal(sb.toString());

另一方面,如果每个String代表一个不同的数字:

for (String s : amountStr) {
    BigDecimal amount = new BigDecimal(s);
    // ... and do something with it ...
}

答案 2 :(得分:0)

我的理解是您要将list elements转换为BigDecimal Array。如果是这样,你可以这样做:

BigDecimal[] amount = new BigDecimal[amountStr.size()];
for (int i=0;i<amountStr.size();i++) {
     amount[i] = new BigDecimal(amountStr.get(i));
 }