Java运营商,精度,可能丢失数据?

时间:2015-01-23 07:10:00

标签: java math operators precision

所以我试图通过将一天中的秒数转换为标准00:00:00或hh:mm:ss来创建时间戳,其中h是小时,m是分钟,s是秒。

我不明白为什么Java将以下操作计算为39.9999999 ...而不是40。

sec = (((((7000.0/3600.0) - 1.0)*60.0) - 56.0)*60.0);

这是一个问题,因为当我将值转换为整数或使用floor函数时,它会将其保留为39秒。 7000秒计算为1:56:40,但程序将其计算为1:56:39。

请注意,我放置的秒,地板小时和分钟的值对于我的程序是可互换的,为了调试目的,我将其更改为文字值。

有关正在发生的事情的任何建议或可能的见解? (我是编程新手)

0 个答案:

没有答案