在算法第四版做练习时 习题1.1.20
public class Test2 {
public static void main(String[] args) {
double result = Math.log(24);
System.out.println(Cal(4) + " " + result+"?"+(Cal(4)==result));
}
/*
习题1.1.20
编写一个递归的静态方法计算ln(N!)的值
*/
public static double Cal(int n) {
if (n == 1) return 0;
return Math.log(n) + Cal(n - 1);
}
}
结果输出为:
3.1780538303479453 3.1780538303479458
我看到小数点最后一位是不同的,有些不解,按理说,递归展开后是同样的计算过程才对..
我将参数改为5,6试了一下,发现虽然输出台的结果相同了,但是用==符号是false
初学者,恳求各位大佬解惑....