我使用下面的代码来计算以2为底的对数。Math.log(x)/Math.log(2); 使用这个函数,当x=4/5时,会得到nan。 但是在calc和excel中,这个问题不存在。 如何避免得到nan并获得真实值?
我有强烈的感觉你的4/5是整数。这意味着由于整数除法,4/5将评估为0。 log(0)是负无穷大,这可能是你的NaN的来源。要解决这个问题,在进行除法之前,将数字转换为浮点数:double x = (double)4 / 5;