如何解决以下问题?
我用Java编写代码,但是我没有得到更高位数的确切结果。
我的代码:
public class Calculation {
ArrayList<Double> c = new ArrayList<Double>();
double a = 2;
double b = 64;
double[] d = new double[5];
public void powerCalculation()
{
d[0] = java.lang.Math.pow(a, b);
System.out.println(d[0]);
}
public static void main(String[] args)
{
Calculation calculation = new Calculation();
calculation.powerCalculation();
}
}
答案 0 :(得分:3)
double的尾数不足以容纳2^64
的数字。
直截了当但很难的方法是使用像
ArrayList<Byte> a;
(其中a.get(x)
表示位置10^x
的值)并重写您在学校学到的加法,乘法和幂的算法。