我做了一个游乐场,再现了我的问题。我有一些测试失败了,因为json Marshal方法在对象转换过程中似乎会丢失精度。time.Time运行以下代码:package mainimport ( "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.0000000012009-11-10 23:00:00 +0000 UTC问题是,当我运行任何涉及对象转换的测试时,我无法使用任何标准方法来比较结果(作证,反映...)。time.Time有没有办法在编组对象时保持精度,或者将时间值“舍入”到较低的精度?time.Time
- 2 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消
