首頁 > 軟體

go中string、int、float相互轉換的實現範例

2022-03-20 22:00:18

之前很多次用到的時候總會忘一些,這次記下來,後面再忘了就直接來這查~。

string轉其它

string --> int:將字串13轉換為int型別的數值13

str := "13"
distInt,err := strconv.Atoi(str)

string --> int64:將字串13轉換為int64(十進位制)

// 引數1:帶轉換字串,
// 引數2:基於幾進位制,值可以是0,8,16,32,64
// 引數3:要轉成哪個int型別:可以是0、8、16、32、64,分別對應 int,int8,int16,int32,int64
distInt64, err := strconv.ParseInt(str, 10, 64)

string --> float64、float32

// ParseFloat 將字串轉換為浮點數
// str:要轉換的字串
// bitSize:指定浮點型別(32:float32、64:float64)
// 如果 str 是合法的格式,而且接近一個浮點值,
// 則返回浮點數的四捨五入值(依據 IEEE754 的四捨五入標準)
// 如果 str 不是合法的格式,則返回「語法錯誤」
// 如果轉換結果超出 bitSize 範圍,則返回「超出範圍」
//到float64
distFloat,err := strconv.ParseFloat(str,64)
//到float32
distFloat,err := strconv.ParseFloat(str,32)

int、int64轉其它

int --> string

i := 11
str1 := strconv.Itoa(i)
//或
str2 := strconv.FormatInt(int64(i),10)

int64 --> string

distStr := strconv.FormatInt(num,10)

float轉其它

float --> string

// FormatFloat 將浮點數 f 轉換為字串值
// f:要轉換的浮點數
// fmt:格式標記(b、e、E、f、g、G)
// prec:精度(數位部分的長度,不包括指數部分)
// bitSize:指定浮點型別(32:float32、64:float64)
// 格式標記:
// 'b' (-ddddp±ddd,二進位制指數)
// 'e' (-d.dddde±dd,十進位制指數)
// 'E' (-d.ddddE±dd,十進位制指數)
// 'f' (-ddd.dddd,沒有指數)
// 'g' ('e':大指數,'f':其它情況)
// 'G' ('E':大指數,'f':其它情況)
// 如果格式標記為 'e','E'和'f',則 prec 表示小數點後的數位位數
// 如果格式標記為 'g','G',則 prec 表示總的數位位數(整數部分+小數部分)
str1 = strconv.FormatFloat(11.34,'E',-1,32)
str2 = strconv.FormatFloat(10.55,'E',-1,64)
fmt.Println(str1,str2)    //1.134E+01  1.055E+01
//解析轉換後的string變數str為float
h,_ :=strconv.ParseFloat(str1,32)
fmt.Println(h)    //11.34000015258789
h,_ =strconv.ParseFloat(str2,64)
fmt.Println(h)    //10.55

float64 --> int64(會有精度損失)

var x float64 = 6.9
y := int64(x)

到此這篇關於go中string、int、float相互轉換的實現範例的文章就介紹到這了,更多相關go string、int、float相互轉換內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com