我有一个循环,我通过执行t-(long)(System.currentTimeMillis()/1000.0f)
检查秒数,其中t在循环之前设置为t=(long)(System.currentTimeMillis()/1000.0f)
。我发现(long)(System.currentTimeMillis()/1000.0f)
在前128秒内等于t。然后在另一个128秒后更新。我在后台线程上这样做。我做错了什么?
答案 0 :(得分:3)
System.currentTimeMillis()是一个足够大的值,float不能代表该范围内的所有整数。
修复是简单地使用整数除以1000。
答案 1 :(得分:2)
您可以使用它将millis转换为第二
long timeMillis = System.currentTimeMillis();
long timeSeconds = TimeUnit.MILLISECONDS.toSeconds(timeMillis);