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를 사용할 수 있습니다.) 물론 myInf
MAX_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
답변
Double
및 Float
유형은이 POSITIVE_INFINITY
상수.
답변
Java가 모든 숫자 유형에 대해 무한대를 가지고 있는지 확실하지 않지만 일부 숫자 데이터 유형에 대한 대답은 긍정적입니다.
Float.POSITIVE_INFINITY
Float.NEGATIVE_INFINITY
또는
Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY
또한 +/- 무한대와 관련된 수학적 연산을 나타내는 다음 기사를 유용하게 찾을 수 있습니다. Java 부동 소수점 수 복잡성 .
답변
Double 및 Float 유형 만 POSITIVE_INFINITY
상수를 지원 합니다.
답변
숫자 래퍼 유형의 경우.
예 : Double.POSITVE_INFINITY
이것이 당신을 도울 수 있기를 바랍니다.