2011-04-30 136 views
2

我可以在时间戳类看,构造是这样:司数字

public Timestamp(long time) { 
    super((time/1000)*1000); 
    .................... 

什么林不理解,什么是时间除以1000,然后1000有什么区别乘以再次的需要它会做?这不是多余的吗?

回答

5

这是截断到1000毫秒的下一个较低倍数的一种方式 - 即截至整秒。这不一定是最好的方式,但它是一种方式。

+1

“时间/ 1000”的棋子肯定会围绕它。然而,它再次将结果(即秒)乘以1000以使其为毫秒。 (23000/1000)* 1000会再次给我23000,所以四舍五入的地方在哪里? – Vicky 2011-04-30 12:27:10

+2

@Vicky:23123/1000 = 23,然后是23 * 1000 = 23000。 – 2011-04-30 12:28:04

+2

值得注意的是,它不会舍入*最接近的* 1000毫秒。它实际上将其铺设到最接近的较小的1000毫秒。 (23999/1000)* 1000 == 23000. – Doug 2011-04-30 12:30:06