2 回答
TA贡献1836条经验 获得超4个赞
包 strconv
导入“strconv”> func FormatFloat
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
FormatFloat 根据格式 fmt 和 precision prec 将浮点数 f 转换为字符串。假设原始数据是从 bitSize 位的浮点值(float32 为 32,float64 为 64)获得的,它对结果进行四舍五入。
格式 fmt 是 'b'(-ddddp±ddd,二进制指数)、'e'(-d.dddde±dd,十进制指数)、'E'(-d.ddddE±dd,十进制指数)之一)、'f'(-ddd.dddd,无指数)、'g'('e' 表示大指数,否则为 'f')或 'G'('E' 表示大指数,否则为 'f')。
精度 prec 控制由 'e'、'E'、'f'、'g' 和 'G' 格式打印的位数(不包括指数)。对于“e”、“E”和“f”,它是小数点后的位数。对于“g”和“G”,它是总位数。特殊精度 -1 使用所需的最小位数,以便 ParseFloat 将准确返回 f。
使用的精确度-1,不是1。使用 , 的格式f,不要g避免大指数的指数形式(请参阅HectorJ 的评论)。
startLat := strconv.FormatFloat(o.Coordinate.Longitude, 'f', -1, 64)
例如,
package main
import (
"fmt"
"strconv"
)
func main() {
f := 64.2345
s := strconv.FormatFloat(f, 'g', 1, 64)
fmt.Println(s)
s = strconv.FormatFloat(f, 'f', -1, 64)
fmt.Println(s)
}
输出:
6e+01
64.2345
TA贡献1995条经验 获得超2个赞
其他一些选择:
package main
import "fmt"
func main() {
n := 64.2345
{ // example 1
s := fmt.Sprint(n)
fmt.Println(s == "64.2345")
}
{ // example 2
s := fmt.Sprintf("%v", n)
fmt.Println(s == "64.2345")
}
{ // example 3
s := fmt.Sprintf("%g", n)
fmt.Println(s == "64.2345")
}
}
https://golang.org/pkg/fmt#Sprint
https://golang.org/pkg/fmt#Sprintf
- 2 回答
- 0 关注
- 154 浏览
添加回答
举报