这只是出于好奇。如果我将两个递归数或无理数存储在两个双精度数中,然后执行一些操作,它如何产生实际结果?
例如,
double d1=7d/3;
double d2=5d/3;
double sum=d1+d2;
System.out.println(new BigDecimal(sum)); //prints exactly 4
另一个:
double d1=log10(3);
double value=Math.pow(10,d1);
System.out.println(new BigDecimal(value)); //prints exactly 3
这些准确的结果是如何产生的?