小编Tho*_*eis的帖子

Go float64不适用于纬度和经度

我试图用精确的json对象解析纬度和经度,我为这个工作选择了float64.但是,float64以某种方式舍入数字,我不知道该怎么做才能避免舍入.

我创建了一个快速代码片段,以便您可以执行此问题:http: //play.golang.org/p/9g6Imn-7GK

package main

import (
    "encoding/json"
    "fmt"
    "reflect"
)

type Position struct {
    Lat float64 `json:"lat"`
    Lon float64 `json:"lon"`
}

func main() {
    s := `{"lat":13.519004709972312,"lon": -13.519004709972312}`
    pos := Position{}
    json.Unmarshal([]byte(s), &pos)

    if !reflect.DeepEqual(s, &pos) {
        fmt.Printf("\nExpected %#v\nbut got  %#v", s, pos)
    }
}
Run Code Online (Sandbox Code Playgroud)

precision numbers go

0
推荐指数
1
解决办法
1482
查看次数

标签 统计

go ×1

numbers ×1

precision ×1