2014-10-09 4 views
-6

이미 이런 질문이 많이 있다는 것을 알고 있습니다. 그러나 2 개의 숫자를 비교할 필요가 있다면 어떤 숫자인지 알 수 없습니다. 어느 쪽이 Float 일 수 있고 다른 하나는 Long 일 수 있음을 의미합니다. 이 문제를 해결할 수있는 JavaCore 또는 Apache 라이브러리가 있습니까 (불행히도 NumberUtils에는이 방법이 없습니다). 나는 몇 시간을 찾고 있었지만 성공하지 못했습니다. 또는 바퀴를 this과 같은 것으로 재발 명해야합니다. Java와 같은 고급 언어에는 2 개의 숫자를 비교할 수있는 도구가 없다고 저는 믿습니다.2 개의 자바 숫자 비교

+0

코드를 공유하는 마음? –

+0

Object와 Number가 둘 다 비교할 수없는 경우이 연산자는 비교 가능한 객체에 대해서만 오버로드됩니다. 또는 원시 타입의 경우. – deathangel908

+0

어떤 값 (int, float, double)을 가져 와서 Float과 같은 데이터 유형으로 캐스팅하고 알고있는 데이터 유형과 비교할 수 있습니다. –

답변

0

두 숫자에 doubleValue() 메서드를 사용하고 이중 값을 비교할 수 있습니다.

정수에 더 높은 정밀도가 필요한 경우이 값을 세피아 경우로 구현할 수 있습니다.

숫자의 인스턴스가 아닌 객체 (예 : "숫자"가 포함 된 객체 또는 문자열)가있는 경우 모든 코드를 버리고 솔직히 처음부터 시작해야합니다.

0

int가 비교되기 전에 long으로 변환됩니다. 원칙적으로 캐스팅의 (a == (긴) b)는

자바 당신을 위해 원시적 인 형태를 캐스팅 할 경우,

처럼 일어날은 정밀도의 손실을 포함하지 않음을 제공합니다. int가 가질 수있는 모든 값을 long으로 유지할 수 있기 때문에 캐스트는 자동으로 수행되지만 int가 있어야하는 곳에 사용하려면 long을 명시 적으로 형 변환 (예 : cast)해야합니다.

편집 : long "x"를 int로 변환하려면 다음을 사용하십시오. x = (int) x;

+0

Long 3l 및 Float 3.3f가 있으면 어떻게됩니까? Fload를 Long으로 캐스트하면 3L = 3.3f가됩니다. – deathangel908