Дополнение для BigDecimal

function integerwithdot(s, iid){
        var i;
        s = s.toString();
        for (i = 0; i < s.length; i++){
            var c;
            if (s.charAt(i) == ".") {
            } else {
                c = s.charAt(i);
            }
            if (isNaN(c)) {
                c = "";
                for(i=0;i<s.length-1;i++){
                    c += s.charAt(i);
                }
                document.getElementById(iid).value = c;
                return false;
            }
        }
        return true;
    }
143
задан Bhesh Gurung 14 December 2011 в 21:16
поделиться

6 ответов

BigDecimal является неизменным, поэтому вам нужно сделать следующее:

BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);
263
ответ дан 23 November 2019 в 22:41
поделиться

Используя лямбды Java8

List<BigDecimal> items = Arrays.asList(a, b, c, .....);

items.stream().filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);

Это покрывает случаи, где некоторые или все объекты в списке являются пустыми.

0
ответ дан 23 November 2019 в 22:41
поделиться
BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);
16
ответ дан 23 November 2019 в 22:41
поделиться

Судя по документации Java здесь , add возвращает новый BigDecimal:

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);
31
ответ дан 23 November 2019 в 22:41
поделиться

На самом деле это довольно просто. Просто сделайте следующее:

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);

См. Также: BigDecimal # add (java.math.BigDecimal)

11
ответ дан 23 November 2019 в 22:41
поделиться

BigInteger является неизменным, вам нужно сделать это,

  BigInteger sum = test.add(new BigInteger(30));  
  System.out.println(sum);
9
ответ дан 23 November 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: