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 關注
- 188 瀏覽
添加回答
舉報