BigInteger
只有equals
才能进行比较吗?
是否有替代数学符号,如< (大于)或< (少于)?
^回答!
现在我想知道,有没有办法在迭代中使用BigInteger
,例如while
和for
?
答案 0 :(得分:5)
您可以使用compareTo方法。
答案 1 :(得分: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类时遇到了很多麻烦,然后实现了一个可以保存和操作复杂类的矩阵。
我的解决方案是使用Java创建核心类,然后使用Groovy创建使用核心类的类。如果您遵循某些命名模式,那么您可以使用任何类的任何运算符。
或者,如果你只想搞乱大数字,只需使用groovy,甚至不为变量声明一个类型 - 它会自动将它们推广到你需要的任何东西。
答案 2 :(得分:0)
Java运算符仅设计为仅对原始数据类型进行操作;他们不会上课。由于BigInteger是一个类,因此算术比较和操作只能通过类方法完成。