我有这样的围棋程序,package mainimport "fmt"import "time"func main() {s := strconv.Itoa64(time.Nanoseconds())fmt.Println(s)}在我的系统中,输出为19位纳秒。现在,我想在7到12纳秒之后得到像数字一样的时间。有人可以帮忙吗?注意:我想要7到12之间的数字,因为在我的系统中,它们之间的时间不同,这意味着其他数字相同,因此对我而言是不需要的。并且不需要在println内进行格式化,因为我仅举示例说明我的代码。实际上,我将格式化时间用于其他目的。我在s:=中需要它。
3 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
例如,
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
s := strconv.Itoa64(time.Nanoseconds() / 1e7 % 1e6)
fmt.Println(s)
}
此算法从右边开始算出数字8到13。对于19位整数,这等效于从左边开始计数的7到12位数字。对于19位数字1323154238948677000,这些是数字423894。
功能纳秒
func Nanoseconds()int64
纳秒报告自Unix时代(世界标准时间1970年1月1日00:00:00)以来的纳秒数。
在某个时间点,纳秒数将从19个有效数字增加到20个有效数字。因此,从左侧切掉有效数字的算法(例如[6:12])是错误的。
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
从7到12提取数字很容易,字符串切片将达到目的:
s := strconv.Itoa64(time.Nanoseconds())
fmt.Println(s[6:12])
所以你明白了。
- 3 回答
- 0 关注
- 252 浏览
添加回答
举报
0/150
提交
取消