3

mysqlのテーブルのチェックボックスフォームから取得されるBigDecimal[]の値を合計する方法を見つけるのに苦労しています。

これは私がこれまでに持っているコードですが、取得した値から1つの数値だけを取得する方法を見つけることができません。

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

それが機能しない理由は、最終的な合計を作成するときに、 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 に答える