我做了一个游乐场,再现了我的问题。我有一些测试失败了,因为json Marshal方法在对象转换过程中似乎会丢失精度。time.Time
运行以下代码:
package main
import (
"fmt"
"encoding/json"
"time"
)
type myStruct struct{
Now time.Time `json:"time"`
}
func main() {
expect := &myStruct{Now: time.Now()}
fmt.Println(expect.Now.String())
byteData, err := json.Marshal(expect)
if err != nil {
panic(err.Error())
}
actual := &myStruct{}
err = json.Unmarshal(byteData, &actual)
if err != nil {
panic(err.Error())
}
fmt.Println(actual.Now.String())
}
输出:
2009-11-10 23:00:00 +0000 UTC m=+0.000000001
2009-11-10 23:00:00 +0000 UTC
问题是,当我运行任何涉及对象转换的测试时,我无法使用任何标准方法来比较结果(作证,反映...)。time.Time
有没有办法在编组对象时保持精度,或者将时间值“舍入”到较低的精度?time.Time
元芳怎么了
猛跑小猪
繁星淼淼
随时随地看视频慕课网APP
相关分类