(编辑:在更多人投票之前,我确实事先看过Javadoc,但由于我是初学者,我不确定文件中的哪个部分要看。请参阅我对Jim G的回复,发布在下面。我我知道这个问题可能被认为太基础了。但我认为在我的情况下,它对其他初学者有一定的价值。所以请在初学者的观点之前考虑完整情况。)
我想将BigInteger除以常规整数(即int),但我不知道如何做到这一点。我在Google和Stack Exchange上进行了快速搜索,但未找到任何答案。
那么,我怎样才能将BigInteger除以int?虽然我们正在努力,但我如何将BigInts添加/减去整数,将BigInts与整数进行比较等等?
答案 0 :(得分:4)
只需使用BigInteger.valueOf(long)
工厂方法即可。 int可以隐含地加宽"要长...从小到大的情况总是如此,例如: byte => short,short => int,int =>长。
BigInteger bigInt = BigInteger.valueOf(12);
int regularInt = 6;
BigInteger result = bigInt.divide(BigInteger.valueOf(regularInt));
System.out.println(result); // => 2
答案 1 :(得分:-2)
将Integer
转换为BigInteger
,然后将BigInteger
分开,如下所示:
BigInteger b = BigInteger.valueOf(10);
int x = 6;
//convert the integer to BigInteger.
BigInteger converted = new BigInteger(Integer.toString(x));
//now you can divide, add, subtract etc.
BigInteger result = b.divide(converted); //but this will give you Integer values.
System.out.println(result);
result = b.add(converted);
System.out.println(result);
上述部门会为您提供Integer
分部值,要获得准确的值,请使用BigDecimal
。
修改强>
要删除上述代码中的两个中间变量converted
和result
:
BigInteger b = BigInteger.valueOf(10);
int x = 6;
System.out.println(b.divide(new BigInteger(Integer.toString(x))));
或强>
Scanner in = new Scanner(System.in);
System.out.println(BigInteger.valueOf((in.nextInt())).divide(new BigInteger(Integer.toString(in.nextInt()))));