Golang strconv包 、string、int、int64互相转换

 
  1. #string到int

  2. int,err:=strconv.Atoi(string)

  3. #string到int64

  4. int64, err := strconv.ParseInt(string, 10, 64)

  5. #int到string

  6. string:=strconv.Itoa(int)

  7. #int64到string

  8. string:=strconv.FormatInt(int64,10)

同类型之间转换,比如int64到int,直接int(int64)即可;

 

strconv 包括 四 类函数
1.Append 类,例如 AppendBool(dst []byte, b bool)[]byte,将值转化后添加到[]byte的末尾
2.Format 类,例如FormatBool(b bool) string,将bool  float int uint 类型的转换为string,FormatInt的缩写为Itoa
3.Parse 类,例如ParseBool(str string)(value bool, err error) 将字符串转换为 bool float int uint类型的值,err指定是否转换成功,ParseInt的缩写是Atoi
4.Quote 类,对字符串的 双引号 单引号 反单引号 的操作

实例:

1、func ParseBool(str string) (value bool, err error)

返回字符串表示的bool值。它接受"1", "t", "T", "true", "TRUE", "True", "0", "f", "F", "false", "FALSE", "False";否则返回错误。

例1: 
s := "true"
d, err := strconv.ParseBool(s)
fmt.Println(err)  //结果: <nil>
fmt.Println(d)    //结果: true

  例2:

s := "1"
d, err := strconv.ParseBool(s)
fmt.Println(err)  //结果: <nil>
fmt.Println(d)    //结果: true

2、func ParseInt(s string, base int, bitSize int) (i int64, err error)

返回字符串表示的整数值,接受正负号。
base指定进制(2到36),如果base为0,则会从字符串前置判断,"0x"是16进制,"0"是8进制,否则是10进制;
bitSize指定结果必须能无溢出赋值的整数类型,0、8、16、32、64 分别代表 int、int8、int16、int32、int64;
返回的err是*NumErr类型的,如果语法有误,err.Error = ErrSyntax;如果结果超出类型范围err.Error = ErrRange。

例1:

d, err := strconv.ParseInt("A", 16, 32)
fmt.Println(err)  //结果: <nil>
fmt.Println(d)    //结果: 10

例2:

d,err = strconv.ParseInt("10000", 10, 0)
fmt.Println(err)  //结果: <nil>
fmt.Println(d)    //结果: 1000

3、func ParseFloat(s string, bitSize int) (f float64, err error)

解析一个表示浮点数的字符串并返回其值。
bitSize指定了期望的接收类型,32是float32(返回值可以不改变精确值的赋值给float32),64是float64。

例1:

d, err := strconv.ParseFloat("21.145778754", 64)
fmt.Println(d, err)      //结果: 21.145778754  <nil>

4、func FormatBool(b bool) string
根据b的值返回"true"或"false"。

例1:

fmt.Println(strconv.FormatBool(1 < 2)) //ture

5、func FormatInt(i int64, base int) string
返回i的base进制的字符串表示。base 必须在2到36之间,结果中会使用小写字母'a'到'z'表示大于10的数字。

例1:

fmt.Println(strconv.FormatInt(15, 2))  //1111
fmt.Println(strconv.FormatInt(15, 8))  //17
fmt.Println(strconv.FormatInt(15, 10)) //15

6、func FormatFloat(f float64, fmt byte, prec, bitSize int) string
函数将浮点数表示为字符串并返回。
bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。
fmt表示格式。
prec控制精度(排除指数部分),对'f'、'e'、'E',它表示小数点后的数字个数;对'g'、'G',它控制总的数字个数。如果prec 为-1,则代表使用最少数量的、但又必需的数字来表示f。

例1:

s := strconv.FormatFloat(123.1233456, 'f', 6, 32)
fmt.Println(s)   //结果: 123.123344

7、func Atoi(s string) (i int, err error)
  Atoi是ParseInt(s, 10, 0)的简写。

s, err := strconv.Atoi("55")
fmt.Println(s, err)  //结果:55 <nil>   //55的类型是int

8、func Itoa(i int) string
  Itoa是FormatInt(i, 10) 的简写。

b := strconv.Itoa(55)
fmt.Println(b)  //结果: 55   //类型是string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值