猿问

有没有人遇到过这个问题哈!关于时间戳中数学原理的问题?

代码如下:为什么输入的时间戳事变化的,得到的result在某个区间内是一样的?//main.gofuncPrevSlot(nowint64)int64{//now=time.Now().Unix()varblockInterval=int64(10)result:=int64((now-1)/blockInterval)*blockInterval//whyresultissame?plog.Println("PrevSlot:",int64(result),int64((now-1)/blockInterval),now)returnresult}funcmain(){ticker:=time.NewTicker(1*time.Second)for{<-ticker.Cnow:=time.Now().Unix()PrevSlot(now)}}/**output:2019-01-1610:58:31.668597I|dpos.go:PrevSlot:154760751015476075115476075112019-01-1610:58:32.668649I|dpos.go:PrevSlot:154760751015476075115476075122019-01-1610:58:33.668568I|dpos.go:PrevSlot:154760751015476075115476075132019-01-1610:58:34.668572I|dpos.go:PrevSlot:154760751015476075115476075142019-01-1610:58:35.668547I|dpos.go:PrevSlot:15476075101547607511547607515*/
茅侃侃
浏览 210回答 2
2回答

哔哔one

这个是很常用的取离散值的方法,一个通用的公式是:[a/10]*10这里[]表示取整。也就是说,当a为0~9时,[a/10]的结果都是0,a为10~19时,结果都是1,以此类推,然后后面再×10,整个表达式的结果就是一系列离散的点:0,10,20,30...。

小怪兽爱吃肉

说明:/代表整数除,如11/10=111/10*10=1012/10*10=1013/10*10=1014/10*10=1015/10*10=1016/10*10=1017/10*10=1018/10*10=1019/10*10=10
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答