>  기사  >  Java  >  Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

PHPz
PHPz앞으로
2023-04-27 22:40:051161검색

BigInteger 클래스

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进行比较
    }
}

Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

나누기를 할 때 소수 자릿수가 있으면 여기서 소수 자릿수가 차단됩니다.

물론 정수형뿐만 아니라 부동소수점형도 있습니다.

BigDecimal 클래스

물론 부동 소수점 형식의 정밀도도 최대한 클 수 있습니다.

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));
    }
}

Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

BigDecimal 메소드에서는 Java 언어의 정확성 문제(예: 0.1x3 == 0.3의 결과가 거짓인 문제)를 더 잘 해결할 수도 있습니다.

Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

BigDecimal의 나눗셈 클래스를 완료할 수 없습니다. 문제

그런데 BigDecimal을 사용할 때 주의해야 할 점이 하나 있습니다. (분할할 수 없는 항목을 만나면 오류 보고를 선택하게 됩니다.)

Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

그래서 나눗셈을 할 때 , 직접 차단 비트를 생성하세요. 그냥 계산하세요.

먼저 방법을 살펴보겠습니다:

public BigDecimal Divide(BigDecimal divisor, int scale, int roundingMode)

divisor - divisor. ㅋㅋㅋ

ROUND_CEILING

양의 무한대를 향해 가져오기

Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석

ROUND_DOWN

0ROUND_HALF_ DOWNROUND_HALF_UP
ROUND_FLOOR 음의 무한대를 향해 가져오기
.5를 만나면 내림
.5를 만나면 반올림하여 위로 올라가고, 5를 만나면 반올림하여 이전 숫자를 보고, 5보다 작으면 올라가고, 5와 같으면 하락할 것입니다.

위 내용은 Java의 큰 숫자 BigInteger 및 BigDecimal 클래스 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제