BigInteger
은 비교를 위해서 equals
만을 가지고 있습니까?
< (보다 큼) 또는 < (미만)과 같은 수학 표기법 대신 사용할 수 있습니까? ^ 답변 됨!반복을 위해 BigInteger를 사용하는 방법이 있습니까?
이제 알고 싶습니다. while
과 for
과 같은 반복에서 BigInteger
을 사용하는 방법이 있습니까?
BigInteger
은 비교를 위해서 equals
만을 가지고 있습니까?
< (보다 큼) 또는 < (미만)과 같은 수학 표기법 대신 사용할 수 있습니까? ^ 답변 됨!반복을 위해 BigInteger를 사용하는 방법이 있습니까?
이제 알고 싶습니다. while
과 for
과 같은 반복에서 BigInteger
을 사용하는 방법이 있습니까?
compareTo 방법을 사용할 수 있습니다.
수학 표기법을 사용할 수 없습니다. 실제로는 == 중 하나를 사용하는 습관을 갖지 않을 것입니다. 실제로 심각한 속임수를 사용하지 않으면 실패 할 것입니다.
a = new BigInteger(500);
b = a;
if(a == b)
will always be true
b=new BigInteger(500);
if(a == b)
will never be true
if(a.equals(b))
will always work fine.
자바는 이런 종류의 물건에 대한 좋은 언어가 아닙니다 - 난 정말 자바를 사랑하지만 복잡한 클래스를 구현 많은 문제를 가진 후 상태에서 복잡한 클래스를 조작 할 수있는 매트릭스를 구현 결국 .
내 솔루션은 Java를 사용하여 핵심 클래스를 작성한 다음 Groovy를 사용하여 핵심 클래스를 사용하는 클래스를 작성하는 것이 었습니다. 특정 명명 패턴을 따르는 경우 모든 클래스의 연산자를 사용할 수 있습니다.
또는 단순히 큰 숫자를 엉망으로 만들려는 경우 그루비를 사용하고 변수에 대한 유형을 선언하지 않아도됩니다. 자동으로 필요한만큼 변수를 승격시킵니다.
'BigInteger'는 정수만을 저장할 수 있기 때문에'5.5'는 작동하지 않습니다. 아마도 BigDecimal을 생각하고있을 것입니다. 'BigDecimal'이라고하더라도 : [double을 사용하는 생성자를 사용하면 거의 항상 나쁜 생각입니다.] (http://download.oracle.com/javase/6/docs/api/java/math/BigDecimal. html # BigDecimal (double)) –
젠장, 고마워. 생각조차하지 않았다. Sun이 실제로 BigInt (1부터 10까지)가 일종의 어두운 마법을 통해 같은 참조를 사용하게 만드는 속임수를 실제로 사용한다고 생각하기 때문에 기괴한 숫자를 사용하고 싶었다. 오 잘, 고쳐 갈 것이다. –
또한 자바에 어두운 마술이 없으므로 새로운 객체는 새로운 객체 만 반환합니다. 그러므로 두 번째'a == b' 체크는'true'를 반환 할 수 없습니다. 또한,'add()'는'BigInteger' 인스턴스를 수정하지 않고 (결국 불변입니다.) 결과를 새로운 객체로 반환합니다. –
자바 연산자는 원시 데이터 형식에서만 작동하도록 설계되었습니다. 그들은 수업에 행동하지 않습니다. BigInteger는 클래스이므로, 산술 비교 및 연산은 클래스 메소드를 통해서만 수행 될 수 있습니다.
감사합니다. 당신은 정말로 나를 도왔습니다 – monkry