欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言中int、float、string類型之間相互的轉(zhuǎn)換

 更新時間:2022年01月26日 10:13:35   作者:漫漫Coding路  
golang是強(qiáng)類型語言,在應(yīng)用過程中類型轉(zhuǎn)換基本都會用到,下面這篇文章主要給大家介紹了關(guān)于Go語言中int、float、string類型相互之間的轉(zhuǎn)換,需要的朋友可以參考下

前言

Go 開發(fā)中經(jīng)常設(shè)計到類型轉(zhuǎn)換,本文就重點記錄下 整形、浮點型和字符串類型互相轉(zhuǎn)換的方法。

整形轉(zhuǎn)字符串

fmt.Sprintf

將整數(shù)轉(zhuǎn)為字符串,字符串可以是2進(jìn)制、8進(jìn)制、10進(jìn)制或者16進(jìn)制的表示。

格式描述
%b整型以二進(jìn)制方式顯示
%o整型以八進(jìn)制方式顯示
%d整型以十進(jìn)制方式顯示
%x整型以十六進(jìn)制方式顯示
%X整型以十六進(jìn)制、字母大寫方式顯示

使用方法

fmt.Sprintf("%d", int32(111))   // 111
fmt.Sprintf("%d", int64(111))   // 111
fmt.Sprintf("%d", 111)                    // 111
fmt.Sprintf("%b", 10)                        // 1010

strconv.Itoa

將 int 類型的整數(shù) 轉(zhuǎn)為 10進(jìn)制的字符串表示,底層調(diào)用的就是下一個方法: FormatInt(int64(i), 10)

// Itoa is equivalent to FormatInt(int64(i), 10).
func Itoa(i int) string {
    return FormatInt(int64(i), 10)
}

使用方法

我們可以把int32、int64 先轉(zhuǎn)為 int,然后再使用該方法轉(zhuǎn)換

strconv.Itoa(1123)  // 1123

strconv.FormatInt

將整數(shù)轉(zhuǎn)為字符串,字符串可選2到36進(jìn)制的字符串表示。

入?yún)?/h4>
  • i: int64類型的整數(shù)
  • base: 表示要轉(zhuǎn)為的進(jìn)制,支持2到36進(jìn)制,使用最多的就是轉(zhuǎn)為10進(jìn)制
func FormatInt(i int64, base int) string {}

使用方法

我們可以把int32、int 先轉(zhuǎn)為 int64,然后再使用該方法轉(zhuǎn)換

strconv.FormatInt(123, 10)  // 123
strconv.FormatInt(123, 2)   // 1111011

浮點型轉(zhuǎn)字符串

fmt.Sprintf

支持 float32、float64 轉(zhuǎn) string

fmt.Sprintf("%f", 3.12344)  // 3.123440
???????// 控制輸出小數(shù)位數(shù)
fmt.Sprintf("%.2f", 323.12344)  // 323.12
strconv.FormatFloat

入?yún)?/h4>
  • f:float64類型的浮點數(shù)
  • fmt: 轉(zhuǎn)為字符串后,字符串的類型:
    • ‘b’ (-ddddp±ddd):二進(jìn)制指數(shù)
    • ‘e’ (-d.dddde±dd):10進(jìn)制指數(shù)
    • ‘E’ (-d.ddddE±dd):10進(jìn)制指數(shù)
    • ‘f’ (-ddd.dddd):無指數(shù)
    • ‘g’ :指數(shù)很大時使用’e',其他使用 ‘f’
    • ‘G’ :指數(shù)很大時使用 ‘E’,其他使用’f'
    • ‘x’ (-0xd.ddddp±ddd):十六進(jìn)制分?jǐn)?shù)和二進(jìn)制指數(shù)
    • ‘X’ (-0Xd.ddddP±ddd):十六進(jìn)制分?jǐn)?shù)和二進(jìn)制指數(shù)
  • prec:控制經(jīng)度
    • 如果格式標(biāo)記為 ‘e’、‘E’、‘f’、‘x’、‘X’,則 prec 表示小數(shù)點后的數(shù)字位數(shù)
    • 如果格式標(biāo)記為 ‘g’,‘G’,則 prec 表示總的數(shù)字位數(shù)(整數(shù)部分+小數(shù)部分)
  • bitSize:表示f最初的類型。(雖然入?yún)是float64,有可能是float32轉(zhuǎn)過來的)
func FormatFloat(f float64, fmt byte, prec, bitSize int) string {
    return string(genericFtoa(make([]byte, 0, max(prec+4, 24)), f, fmt, prec, bitSize))
}

使用方法

strconv.FormatFloat(3.1415926, 'f', 5, 64)  // 3.14159
strconv.FormatFloat(3.1415926e5, 'f', 5, 64) // 314159.26000

字符串轉(zhuǎn)整形

strconv.Atoi

string 轉(zhuǎn) int,默認(rèn)字符串是10進(jìn)制的,相當(dāng)于是下個方法 ParseInt(s, 10, 0) 的 10 進(jìn)制轉(zhuǎn)化簡版

func Atoi(s string) (int, error)

使用方法

strconv.Atoi("1234")  // 1234 <nil>
strconv.Atoi("001") // 1 <nil>

strconv.ParseInt

string 轉(zhuǎn) int32 int64 int,字符串可以是不同進(jìn)制類型的。

// s: 數(shù)字的字符串形式 
// base: 數(shù)字字符串的進(jìn)制,支持0以及2-36。如果該字段為0,會根據(jù)字符串的前綴來推斷進(jìn)制,比如"0b"->2進(jìn)制、"0或0o"->8進(jìn)制、"0x" -> 16進(jìn)制
// bitSize: 返回結(jié)果的bit大小, 0 -> int, 8 -> int8、16 -> int16、32 -> int32、 64 -> int64。因為可以選擇不同的 bitSize,所以統(tǒng)一轉(zhuǎn)為int64,不會丟失精度。可根據(jù)需要的bitSize,自行轉(zhuǎn)回去 
func ParseInt(s string, base int, bitSize int) (i int64, err error)

使用方法

// 轉(zhuǎn)int32
num, err := strconv.ParseInt("123",10,32)
fmt.Println(int32(num), err)  // 123 <nil>
// 轉(zhuǎn)int64
num, err := strconv.ParseInt("123", 10, 64)
fmt.Println(num, err) // 123 <nil>
// 轉(zhuǎn)int
num, err := strconv.ParseInt("123", 10, 64)    
fmt.Println(int(num), err) // 123 <nil>
// 二進(jìn)制轉(zhuǎn)int64
num, err := strconv.ParseInt("0b1001", 0, 64)
fmt.Println(int(num), err)  // 9 <nil>

字符串轉(zhuǎn)浮點型

strconv.ParseFloat

// s: 字符串
// bitSize: 要返回結(jié)果的精度
// 方法始終返回float64,即使 bitSize=32,返回 float64 也不會丟失精度
func ParseFloat(s string, bitSize int) (float64, error) {
    if bitSize == 32 {
        f, err := atof32(s)
        return float64(f), err
    }
    return atof64(s)
}

使用方法

strconv.ParseFloat("123.213", 64)   // 123.213 <nil>
???????
strconv.ParseFloat("123.213e3", 64)  // 123213 <nil>

總結(jié)

本文介紹了整形、浮點型、字符串的互相轉(zhuǎn)換方法,可以記住 fmt.Sprintf方法,以及 strconv 包,用到時根據(jù) IDE 的方法提示就可以搞定了!

到此這篇關(guān)于Go語言中int、float、string類型之間相互轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Go語言int、float、string轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go開發(fā)中有哪幾種無法恢復(fù)的致命場景分析

    Go開發(fā)中有哪幾種無法恢復(fù)的致命場景分析

    這篇文章主要為大家介紹了Go有哪幾種無法恢復(fù)的致命場景示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • golang如何讓string轉(zhuǎn)int64

    golang如何讓string轉(zhuǎn)int64

    這篇文章主要介紹了golang如何讓string轉(zhuǎn)int64問題,
    2024-02-02
  • golang中的時間格式化

    golang中的時間格式化

    這篇文章主要介紹了golang中的時間格式化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 基于Go語言實現(xiàn)簡單的計算器

    基于Go語言實現(xiàn)簡單的計算器

    這篇文章主要為大家詳細(xì)介紹了如何基于Go語言實現(xiàn)簡單的計算器,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-10-10
  • Go語言的匿名字段實現(xiàn)組合復(fù)用實例探究

    Go語言的匿名字段實現(xiàn)組合復(fù)用實例探究

    這篇文章主要為大家介紹了Go語言的匿名字段實現(xiàn)組合復(fù)用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • go語言工程結(jié)構(gòu)

    go語言工程結(jié)構(gòu)

    這篇文章主要簡單介紹了go語言工程結(jié)構(gòu),對于我們學(xué)習(xí)go語言很有幫助,需要的朋友可以參考下
    2015-01-01
  • Go語言中內(nèi)存管理逃逸分析詳解

    Go語言中內(nèi)存管理逃逸分析詳解

    所謂的逃逸分析(Escape?analysis)是指由編譯器決定內(nèi)存分配的位置嗎不需要程序員指定。本文就來和大家簡單分析一下Go語言中內(nèi)存管理逃逸吧
    2023-03-03
  • GoLand編譯帶有構(gòu)建標(biāo)簽的程序思路詳解

    GoLand編譯帶有構(gòu)建標(biāo)簽的程序思路詳解

    這篇文章主要介紹了GoLand編譯帶有構(gòu)建標(biāo)簽的程序,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • golang中snappy的使用場合實例詳解

    golang中snappy的使用場合實例詳解

    在java 和go語言 大字符傳達(dá)的時候, 采用snappy 壓縮 解壓縮是最好的方案。下面這篇文章主要給大家介紹了關(guān)于golang中snappy使用場合的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • golang 進(jìn)度條功能實現(xiàn)示例

    golang 進(jìn)度條功能實現(xiàn)示例

    這篇文章主要介紹了golang 進(jìn)度條功能實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論