如果我有以下代码:
long lSecondsSum = 8039;
double dNumDays = lSecondsSum / (24 * 3600);
我期望得到0.093044
,但是由于某种原因我得到了dNumDays = 0.0000000000
。
但是,如果我将代码编写如下:
long lSecondsSum = 8039;
double dNumDays = lSecondsSum/24;
dNumDays = dNumDays/3600;
然后我正确了dNumDays = 0.092777777777777778
。
如何避免所有这些浮点错误?
lSecondsSum为long
,8039/86400
将为0
如果转换24 and 3600
为double,您将获得正确的结果:
double dNumDays = lSecondsSum / (24 * 3600.0);
要不就:
double dNumDays = lSecondsSum / 24.0 / 3600.0;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句