为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

茅侃侃 2019-06-13 10:14:02
代码如下:为什么输入的时间戳事变化的,得到的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*/
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

这个是很常用的取离散值的方法,一个通用的公式是:
[a/10]*10
这里[]表示取整。也就是说,当a为0~9时,[a/10]的结果都是0,a为10~19时,结果都是1,以此类推,然后后面再×10,整个表达式的结果就是一系列离散的点:0,10,20,30...。
                            
查看完整回答
反对 回复 2019-06-13
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

说明:/代表整数除,如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
                            
查看完整回答
反对 回复 2019-06-13
  • 2 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信