有没有办法使用BigInteger进行迭代?

时间:2011-01-26 06:30:35

标签: java math biginteger notation

BigInteger只有equals才能进行比较吗? 是否有替代数学符号,如< (大于)或< (少于)? ^回答!

现在我想知道,有没有办法在迭代中使用BigInteger,例如whilefor

3 个答案:

答案 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是一个类,因此算术比较和操作只能通过类方法完成。