Java 从BigDecimal[]添加值

Java 从BigDecimal[]添加值,java,bigdecimal,Java,Bigdecimal,我正在努力寻找一种方法来从BigDecimal[]中添加值,BigDecimal[]是从mysql表中的复选框表单中获取的 这是到目前为止我所掌握的代码,但我找不到一种方法从这些值中只得到一个数字: String select[] = request.getParameterValues("id"); if (select != null && select.length != 0) { for (int i = 0; i < select.length; i++

我正在努力寻找一种方法来从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);
    }
}
String select[]=request.getParameterValues(“id”);
if(select!=null&&select.length!=0)
{
对于(int i=0;i

非常感谢您的帮助。

假设您正在添加包含有效数字的
字符串数组,您可以执行以下操作:

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

数组
total[]
非常冗余。您可以将
sum
声明和
移出.println(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);
}
String select[]=request.getParameterValues(“id”);
if(select!=null&&select.length!=0)
{
BigDecimal总和=BigDecimal.0;
对于(int i=0;i
您的代码没有多大意义。要添加的
BigDecimal
值的确切位置?它们是
select[]
数组中的
String
值吗?更正@JoãoSilva我得到一个字符串[],但我需要将其转换为大小数以获得一个求和数。我尝试了@Sujay,但什么也没有得到。。。我的意思是,没有错误,但是没有任何和值显示在屏幕上。@谢伊拉:考虑检查你在SELECT[]数组中得到的值,也检查当你试图执行<代码>添加(…)<代码>方法时是否有任何异常被抛出。谢谢@苏杰…这就是问题所在。。。我尝试了你的解决方案,也成功了!也非常感谢你!谢谢@Reimeus,但我什么都没有得到。println(sum)@Reimeus您的回答解释了在循环中添加BigDecimal的方法,因为BigDecimal是不可变的,它将创建许多BigDecimal的对象。我们有没有办法不用创建很多对象就可以做到这一点?