我有一个python程序,它应该乘以2个大整数。
问题是我在具有相同输入的BigInteger
类的java中获得了不同的结果。
我已经尝试过用于python的DecInt库,但是给出了与使用纯python相同的答案。
以下是我的变数:
d = 372049305848826709205673800090501485720867768816
r = 5452188953055713107393819158892374332916586527736541041226026450382
结果我从d * r
进入python:
2028483115341019294875069650745272851135156323450218238187883716036516369477015140871224045070868977706272670887712
结果我使用BigInteger
类进入java:
9530687378863294988874153740700860249994095546182028483115341019294875069650745272851135156323450218238187883716036516369477015140871224045070868977706272670887712
这是我的java代码:
BigInteger d = new BigInteger("372049305848826709205673800090501485720867768816");
BigInteger r = new BigInteger("5452188953055713107393819158892374332916586527736541041226026450382");
BigInteger tmp1 = d.multiply(r);
System.out.println(tmp1);
正如您所看到的,在python的结果中有一些最重要的数字。
有没有解决方案?
答案 0 :(得分:1)
2028483115341019294875069650745272851135156323450218238187883716036516369477015140871224045070868977706272670887712
问题必须出在您的Java代码中。确保您预先形成乘法correctly并验证您的输入。
另外,检查是否有任何可能在结果之前打印数字的内容。我能想到的最简单的方法是:
System.out.println("the result is: " + int1.multiply(int2));
这会将您感兴趣的输出与已打印的所有内容分开。