3

比較のためにBigInteger持っているだけですか? < (より大きい) や < (より小さい) などの数学表記の代わりになるものはありますか? ↑答えた!equals

今知りたいのですが、やBigIntegerなどの繰り返しで使用する方法はありますか?whilefor

4

3 に答える 3

5

compareToメソッドを使用できます。

于 2011-01-26T06:32:39.110 に答える
1

数学表記を使用することはできません。実際、私は==を使用する習慣もありません。彼らが深刻なトリックを使用しない限り、失敗することは間違いありません。

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は、この種のものに最適な言語ではありません。私はJavaが大好きですが、Complexクラスを実装してから、Complexクラスを保持および操作できるマトリックスを実装するのに多くの問題を抱えることになりました。

私の解決策は、Javaを使用してコアクラスを作成し、次にGroovyを使用してコアクラスを使用するクラスを作成することでした。特定の命名パターンに従う場合は、任意のクラスで任意の演算子を使用できます。

または、大きな数値をいじりたいだけの場合は、単にgroovyを使用し、変数の型を宣言することすらしないでください。必要なものに自動的に昇格します。

于 2011-01-26T07:00:20.643 に答える
0

Java 演算子は、プリミティブ データ型のみを操作するように設計されています。クラスには作用しません。BigInteger はクラスであるため、算術比較と演算はクラス メソッドを介してのみ実行できます。

于 2011-01-26T18:47:22.623 に答える