亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據所需格式在 go lang 中將 float 轉換為 string。

根據所需格式在 go lang 中將 float 轉換為 string。

Go
飲歌長嘯 2021-11-22 18:36:38
我在 go 中有 4 個浮點值(startLat,startLon,endLat,endLon)。我想將這些值附加(替換)到下面的字符串中:var etaString = []byte(`{"start_latitude":"` + startLat + `","start_longitude":"` + startLon + `","end_latitude":"` + endLat + `","end_longitude":"` + endLon }`)在這樣做之前,我必須將它們類型轉換為字符串。startLat := strconv.FormatFloat(o.Coordinate.Longitude, 'g', 1, 64)但是,當我這樣做時,我得到這些參數的值,"4e+01 -1e+02 4e+01 -1e+02" 但我只想要這樣的東西: "64.2345" 。我怎樣才能做到這一點?TIA :)
查看完整描述

2 回答

?
HUH函數

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


查看完整回答
反對 回復 2021-11-22
?
拉風的咖菲貓

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


查看完整回答
反對 回復 2021-11-22
  • 2 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號