Java에는 Integer 클래스 등 처리해야 할 클래스가 많지만 Integer 클래스에도 상한이 있습니다. 최대값은 2^31-1입니다.
이때 더 큰 숫자를 표현하고 싶다면 Integer로 표현할 수 없기 때문에 Java에서는 BigInteger 클래스를 제공합니다.
BigInteger 클래스가 지원하는 숫자는 무한하다고 할 수 있으며, 임의 정밀도의 정수를 지원하므로 어떤 값이든 손실 없이 정확하게 표현할 수 있습니다.
여기서 전달되는 숫자 유형은 문자 유형이므로 연산을 수행할 때 + - *를 사용할 수 없다는 점을 강조하고 싶습니다. /
는 이를 사용하는 방법에 해당합니다:
add(), subtract ( ), 곱하기(), 나누기()
및 몇 가지 일반적인 방법:
equals 방법. 비교를 위해
코드 데모:
import java.math.BigInteger; public class Demo01 { public static void main(String[] args) { BigInteger bigInteger1 = new BigInteger("2222222222222222222222222222222"); BigInteger bigInteger2 = new BigInteger("1111111111111111111111111111111"); System.out.println("bigInteger1大数为:" + bigInteger1); System.out.println("bigInteger2大数为:" + bigInteger2); System.out.println("两个大数相加:" + bigInteger1.add(bigInteger2));//加 System.out.println("两个大数相减:" + bigInteger1.subtract(bigInteger2));//减 System.out.println("两个大数相乘:" + bigInteger1.multiply(bigInteger2));//乘 System.out.println("两个大数相除:" + bigInteger1.divide(bigInteger2));//除 System.out.println("两个大数相比:" + bigInteger1.equals(bigInteger2));//equals进行比较 } }
나누기를 할 때 소수 자릿수가 있으면 여기서 소수 자릿수가 차단됩니다.
물론 정수형뿐만 아니라 부동소수점형도 있습니다.
물론 부동 소수점 형식의 정밀도도 최대한 클 수 있습니다.
import java.math.BigDecimal; public class Demo02 { public static void main(String[] args) { BigDecimal bigDecimal1 = new BigDecimal("12232423432432.53241234324"); BigDecimal bigDecimal2 = new BigDecimal("2.0"); System.out.println("bigDecimal1值: " + bigDecimal1); System.out.println("bigDecimal2值: " + bigDecimal2); System.out.println("加:" + bigDecimal1.add(bigDecimal2)); System.out.println("减:" + bigDecimal1.subtract(bigDecimal2)); System.out.println("乘:" + bigDecimal1.multiply(bigDecimal2)); System.out.println("除:" + bigDecimal1.divide(bigDecimal2)); } }
BigDecimal 메소드에서는 Java 언어의 정확성 문제(예: 0.1x3 == 0.3의 결과가 거짓인 문제)를 더 잘 해결할 수도 있습니다.
그런데 BigDecimal을 사용할 때 주의해야 할 점이 하나 있습니다. (분할할 수 없는 항목을 만나면 오류 보고를 선택하게 됩니다.)
그래서 나눗셈을 할 때 , 직접 차단 비트를 생성하세요. 그냥 계산하세요.
먼저 방법을 살펴보겠습니다:
public BigDecimal Divide(BigDecimal divisor, int scale, int roundingMode)
divisor - divisor. ㅋㅋㅋ
ROUND_CEILING
양의 무한대를 향해 가져오기
ROUND_DOWN0ROUND_FLOOR | 음의 무한대를 향해 가져오기 |
---|---|
.5를 만나면 내림 | |
.5를 만나면 반올림하여 위로 올라가고, 5를 만나면 반올림하여 이전 숫자를 보고, 5보다 작으면 올라가고, 5와 같으면 하락할 것입니다. |
위 내용은 Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!