今天犯了一个幼儿园水平的错误,真实不该TT
double result = Math.log10(1000 * 60 * 60 * 24 * 31);
这里很愚蠢的没有思考直接传入了运算值导致(1000 * 60 * 60 * 24 * 31)的结果只能是一个int,但是运算结果又超过了int所能接受最大值。int型数据在二进制里面是有固定位数的,当数字超过int数据时,二进制的最前面的位数也就是符号位会发生变化,所以就变成负数了
因为log运算不能传入负数就会导致运行结果为NaN
再次提醒自己不要犯这种低能的错误TT,只需要把其中一个参数改为double或者强转下让计算结果用double接收即可
1000d * 60 * 60 * 24 * 31
(double)1000 * 60 * 60 * 24 * 31