从BigDecimal []添加值

时间:2012-09-23 21:26:40

标签: java bigdecimal

我正在努力寻找一种方法来添加BigDecimal []的值,这是从mysql的表中的复选框形式中获得的。

这是我到目前为止的代码,但我找不到从这些值中获得一个数字的方法:

String select[] = request.getParameterValues("id"); 
if (select != null && select.length != 0)
{
    for (int i = 0; i < select.length; i++) 
    {
        BigDecimal total[] = new BigDecimal [select.length];
        BigDecimal sum = new BigDecimal("0.00");
        sum = sum.add(new BigDecimal [total.length]);

        out.println(sum);
    }
}

请非常感谢任何帮助。

2 个答案:

答案 0 :(得分:6)

假设您要添加包含有效数字的Strings数组,您可以这样做:

BigDecimal sum = BigDecimal.ZERO;
for (int i = 0; i < select.length; i++) 
{
   sum = sum.add(new BigDecimal(select[i]));
}
out.println(sum);

数组total[]几乎是多余的。您可以将sum声明和out.println(sum);移出您的循环。

答案 1 :(得分:3)

它无法正常工作的原因是因为您在创建最终总和时未正确添加选择数组中的内容。像这样的东西会起作用:

String select[] = request.getParameterValues("id"); 
if (select != null && select.length != 0)
{
    BigDecimal sum = BigDecimal.ZERO;   
    for (int i = 0; i < select.length; i++) 
    {
        try{
            sum = sum.add(new BigDecimal(select[i]));
        }catch(NumberFormatException nxe){
            //Handle your exception
        }
    }
   out.println(sum);
}