3

我正在努力寻找一种将 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);
    }
}

任何帮助将不胜感激。

4

2 回答 2

10

假设您要添加一个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);移出循环。

于 2012-09-23T21:37:07.130 回答
4

它不起作用的原因是因为您在创建最终sum时没有正确添加您在select数组中的内容。像这样的东西会起作用:

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);
}
于 2012-09-23T21:37:22.717 回答