Big Decimal 추가
나는 몇 가지 통화 가치를 가지고 간단한 계산을 하고 싶다.BigDecimal
유형.
BigDecimal test = new BigDecimal(0);
System.out.println(test);
test.add(new BigDecimal(30));
System.out.println(test);
test.add(new BigDecimal(45));
System.out.println(test);
확실히 나는 잘 이해하지 못한다.BigDecimal
산술, 뒤에 있는 출력을 참조하십시오.
Test
0
0
0
누가 나 좀 도와줄래?
그BigDecimal
는 불변하기 때문에, 다음의 조작을 실시할 필요가 있습니다.
BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);
여기 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);
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 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);
다음 항목도 참조하십시오.
BigInteger는 불변의 존재이기 때문에 이 작업을 수행해야 합니다.
BigInteger sum = test.add(new BigInteger(30));
System.out.println(sum);
//you can do in this way...as BigDecimal is immutable so cant set values except in constructor
BigDecimal test = BigDecimal.ZERO;
BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);
result would be 30
BigDecimal no = new BigDecimal(10); //you can add like this also
no = no.add(new BigDecimal(10));
System.out.println(no);
20
다음과 같이 할 수도 있습니다.
BigDecimal A = new BigDecimal("10000000000");
BigDecimal B = new BigDecimal("20000000000");
BigDecimal C = new BigDecimal("30000000000");
BigDecimal resultSum = (A).add(B).add(C);
System.out.println("A+B+C= " + resultSum);
인쇄:
A+B+C= 60000000000
BigInteger는 Strings와 마찬가지로 불변의 존재입니다.즉, 오브젝트가 생성되면 콘텐츠는 변경할 수 없지만 재할당은 가능합니다.
BigInteger sum = test.add(new BigInteger(30));
System.out.println(sum);
.add()는 새 개체를 반환합니다.
Java8 람다 사용
List<BigDecimal> items = Arrays.asList(a, b, c, .....);
items.stream().filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
여기에는 목록의 일부 또는 모든 개체가 null인 경우가 포함됩니다.
BigDecimal demo = new BigDecimal(15);
이는 사용자가 입력한 내용을 내부에 저장하기 때문에 불변합니다. (15)final private final BigInteger intVal;
문자열 생성 시 동일한 개념의 사용으로 모든 입력이 최종적으로 저장됩니다.private final char value[];
.따라서 버그가 포함되어 있지 않습니다.
추가할 다른 예BigDecimals
요점은 불변하며 컨스트럭터에서만 초기화가 가능하다는 것입니다.코드는 다음과 같습니다.
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner sc;
boolean first_right_number = false;
BigDecimal initBigDecimal = BigDecimal.ZERO;
BigDecimal add1 = BigDecimal.ZERO;
BigDecimal add2 = BigDecimal.ZERO;
while (!first_right_number)
{
System.out.print("Enter a first single numeric value: ");
sc = new Scanner(System.in);
if (sc.hasNextBigDecimal())
{
first_right_number = true;
add1 = sc.nextBigDecimal();
}
}
boolean second_right_number = false;
while (!second_right_number)
{
System.out.print("Enter a second single numeric value: ");
sc = new Scanner(System.in);
if (sc.hasNextBigDecimal())
{
second_right_number = true;
add2 = sc.nextBigDecimal();
}
}
BigDecimal result = initBigDecimal.add(add1).add(add2);
System.out.println("Sum of the 2 numbers is: " + result.toString());
}
}
언급URL : https://stackoverflow.com/questions/1846900/addition-for-bigdecimal
'programing' 카테고리의 다른 글
Nuxt Auth Module을 사용하여 Vuex에서 사용자를 다시 설정하는 방법 (0) | 2022.08.15 |
---|---|
Java 예외가 검출되지 않았습니까? (0) | 2022.08.15 |
vuejs2에서 컨트롤러를 사용하는 방법 (0) | 2022.08.15 |
문자열에서 HTML 태그 제거 (0) | 2022.08.15 |
Vuetify의 큰 크기의 v-checkbox 요소 문제 (0) | 2022.08.15 |