go语言数据类型转换教程


当前第2页 返回上一页

base参数表示以什么进制的方式去解析给定的字符串,有效值为0、2-36。当base=0的时候 ,表示根据string的前缀来判断以什么进制去解析:0x开头的以16进制的方式去解析,0开头的 以8进制方式去解析,其它的以10进制方式解析。

以10进制方式解析"-42",保存为int64类型:

1

2

3

i, _ := strconv.ParseInt("-42", 10,

 

64)

以5进制方式解析"23",保存为int64类型:

1

2

i, _ := strconv.ParseInt("23", 5, 64)

println(i)    // 13

因为5进制的时候,23表示进位了2次,再加3,所以对应的十进制数为5*2+3=13。

以16进制解析23,保存为int64类型:

1

2

i, _ := strconv.ParseInt("23", 16, 64)

println(i)    // 35

因为16进制的时候,23表示进位了2次,再加3,所以对应的十进制数为16*2+3=35。

以15进制解析23,保存为int64类型:

1

2

i, _ := strconv.ParseInt("23", 15, 64)

println(i)    // 33

因为15进制的时候,23表示进位了2次,再加3,所以对应的十进制数为15*2+3=33。

Format类函数

将给定类型格式化为string类型:FormatBool()、FormatFloat()、FormatInt()、 FormatUint()。

1

2

3

4

s := strconv.FormatBool(true)

s := strconv.FormatFloat(3.1415, 'E', -1, 64)

s := strconv.FormatInt(-42, 16)

s := strconv.FormatUint(42, 16)

FormatInt()和FormatUint()有两个参数:

1

2

func FormatInt(i int64, base int) string

func FormatUint(i uint64, base int) string

第二个参数base指定将第一个参数转换为多少进制,有效值为2<=base<=36。当指定 的进制位大于10的时候,超出10的数值以a-z字母表示。例如16进制时,10-15的数字分别使用 a-f表示,17进制时,10-16的数值分别使用a-g表示。

例如:FormatInt(-42, 16)表示将-42转换为16进制数,转换的结果为-2a。

FormatFloat()参数众多:

1

2

3

func FormatFloat(f float64, fmt byte, prec,

 

bitSize int) string

bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。

fmt表示格式:'f'(-ddd.dddd)、'b'(-ddddp±ddd,指数为二进制) 、'e'(-d.dddde±dd,十进制指数)、'E'(-d.ddddE±dd,十进制指数)、 'g'(指数很大时用'e'格式,否则'f'格式)、'G'(指数很 大时用'E'格式,否则'f'格式)。

prec控制精度(排除指数部分):对'f'、'e'、'E',它表示小 数点后的数字个数;对'g'、'G',它控制总的数字个数。如果prec 为-1,则 代表使用最少数量的、但又必需的数字来表示f。

Append类函数

AppendTP类函数用于将TP转换成字符串后append到一个slice中:AppendBool()、 AppendFloat()、AppendInt()、AppendUint()。

Append类的函数和Format类的函数工作方式类似,只不过是将转换后的结果追加到一个 slice中。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

package main

 

import (

    "fmt"

    "strconv"

)

 

func main() {

    // 声明一个slice

    b10 := []byte("int (base 10):")

     

    // 将转换为10进制的string,追加到slice中

    b10 = strconv.AppendInt(b10, -42, 10)

    fmt.Println(string(b10))

 

    b16 := []byte("int (base 16):")

    b16 = strconv.AppendInt(b16, -42, 16)

    fmt.Println(string(b16))

}

输出结果:

1

2

int (base 10):-42

int (base 16):-2a

更多golang知识请关注golang教 程栏目。

以上就是go语言数据类型转换教程的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Go语言中make用法是什么

Go语言 类型转换表示什么

Go语言能干什么

Go语言函数值传递值

Go语言如何初始化结构体的成员变量

Go语言有没有优势?

Go语言属于什么

Go语言make的用法有哪些

Go语言字符串怎么求指定子串

详解用Go语言实现查找两个数组的异同

更多相关阅读请进入《Go语言》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...