[java] Java에서 무한대를 구현하는 방법은 무엇입니까?

Java에는 모든 숫자 데이터 유형에 대해 무한대를 나타내는 것이 있습니까? 수학 연산을 수행 할 수 있도록 어떻게 구현됩니까?

예 :

int myInf = infinity; //However it is done
myInf + 5; //returns infinity
myInf*(-1); //returns negative infinity

나는 매우 큰 숫자를 사용하려고 시도했지만 적절하고 쉬운 해결책을 원합니다 .



답변

double 무한대 지원

double inf = Double.POSITIVE_INFINITY;
System.out.println(inf + 5);
System.out.println(inf - inf); // same as Double.NaN
System.out.println(inf * -1); // same as Double.NEGATIVE_INFINITY

인쇄물

Infinity
NaN
-Infinity

참고 : Infinity - Infinity숫자아닙니다 .


답변

이유 때문에 정수 수학을 사용한다고 가정합니다. 그렇다면 Integer클래스 의 MAX_VALUE 필드를 사용하여 POSITIVE_INFINITY와 기능적으로 거의 동일한 결과를 얻을 수 있습니다 .

Integer myInf = Integer.MAX_VALUE;

(그리고 NEGATIVE_INFINITY의 경우 MIN_VALUE를 사용할 수 있습니다.) 물론 myInfMAX_VALUE에 해당하는 값 과 비교할 때 기능적인 차이 가있을 수 있습니다. 분명히이 숫자는보다 작지 않습니다 myInf.

이 또한의 도서관 실제로 필드 POSITIVE_INFINITY 및 NEGATIVE_INFINITY을 가지고 있지만, 그들은 정말 MAX_VALUE와 MIN_VALUE 단지의 새로운 이름입니다.


답변

사용하려면 Infinity다음 Double을 지원 Infinity하십시오.-

    System.out.println(Double.POSITIVE_INFINITY);
    System.out.println(Double.POSITIVE_INFINITY * -1);
    System.out.println(Double.NEGATIVE_INFINITY);

    System.out.println(Double.POSITIVE_INFINITY - Double.NEGATIVE_INFINITY);
    System.out.println(Double.POSITIVE_INFINITY - Double.POSITIVE_INFINITY);

출력 :-

Infinity
-Infinity
-Infinity

Infinity
NaN


답변

DoubleFloat유형은이 POSITIVE_INFINITY상수.


답변

Java가 모든 숫자 유형에 대해 무한대를 가지고 있는지 확실하지 않지만 일부 숫자 데이터 유형에 대한 대답은 긍정적입니다.

Float.POSITIVE_INFINITY
Float.NEGATIVE_INFINITY

또는

Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY

또한 +/- 무한대와 관련된 수학적 연산을 나타내는 다음 기사를 유용하게 찾을 수 있습니다. Java 부동 소수점 수 복잡성 .


답변

Double 및 Float 유형 만 POSITIVE_INFINITY상수를 지원 합니다.


답변

숫자 래퍼 유형의 경우.

예 : Double.POSITVE_INFINITY

이것이 당신을 도울 수 있기를 바랍니다.