Go语言字符串和数值转换

一.字符串概述

  • 字符串是一段不可变的字符序列.内容是任意内容,可以是一段文字也可以是一串数字,但是字符串类型数字不能进行数学运算,必须转换成整型或浮点型
  • 字符串类型关键字:string
  • 创建字符串类型变量
1var s string = "hello,world" 2s1 := "hello,world"
  • 字符串类型的值使用双引号""扩上,内容支持转义字符串.两侧使用反单引号时原格式输出
1func main() { 2 a := "hello\tworld" 3 b := `hello\tworld` 4 fmt.Println(a) //输出:hello world 5 fmt.Println(b) //输出:hello\tworld 6}

二.字符串和数值转换

  • 包strconv提供了字符串和其他类型相互转换的函数,下面以字符串和数值类型转换为例
  • int和string相互转换
1package main 2 3import ( 4 "fmt" 5 "strconv" 6) 7 8func main() { 9 s := "11" 10 /* 11 第一个参数:需要转换的字符串变量 12 第二个参数:这个数字是几进制,常用取值:2,8,10,16 13 第三个参数:认为这个数字的整数类型.可取值:0,8,16,32,64. 14 但是由于方法最后返回值是int64,所以第三个参数无论设置什么最终结果都是int64 15 */ 16 i, _ := strconv.ParseInt(s, 10, 8) 17 fmt.Println(i) 18 fmt.Printf("%T\n", i) 19 20 //简单写法,相当于strconv.ParseInt(s,10,64) 21 i1, _ := strconv.Atoi(s) 22 fmt.Println(i1) 23}
  • Int转换成string
1package main 2 3import ( 4 "fmt" 5 "strconv" 6) 7 8func main() { 9 i := 11 10 /* 11 第一个参数:必须是int64类型 12 第二个参数:进制数 13 */ 14 s := strconv.FormatInt(int64(i), 10) 15 fmt.Println(s) //输出:11 16 fmt.Printf("%T\n", s) //输出:string 17 18 /* 19 由于平时常用int,且使用短变量时整数默认是int类型 20 所以下面方式较常用,把int转换为string 21 */ 22 s1 := strconv.Itoa(i) 23 fmt.Println(s1) //输出:11 24 fmt.Printf("%T", s1) //输出:string 25}
  • string转换为floatXX类型
1package main 2 3import ( 4 "fmt" 5 "strconv" 6) 7 8func main() { 9 s := "1.5" 10 /* 11 把字符串转换为指定类型 12 第一个参数:字符串 13 第二个参数:可取值为32和64,分别表示float32和float64 14 返回值是float64 15 */ 16 f, _ := strconv.ParseFloat(s, 64) 17 fmt.Println(f) 18 fmt.Printf("%T", f) 19}
  • floatXX转换为string类型
1package main 2 3import ( 4 "fmt" 5 "strconv" 6) 7 8func main() { 9 f := 1.5 10 /* 11 把浮点型转换为字符串类型 12 第一个参数:浮点型变量 13 第二个参数: 14 'f'(-ddd.dddd) 15 'b'(-ddddp±ddd,指数为二进制) 16 'e'(-d.dddde±dd,十进制指数) 17 'E'(-d.ddddE±dd,十进制指数) 18 'g'(指数很大时用'e'格式,否则'f'格式) 19 'G'(指数很大时用'E'格式,否则'f'格式) 20 第三个参数:小数点精度,精度不够使用0补全,超出精度四舍五入 21 第四个参数:浮点型变量类型,64表示float64,32表示float32 22 */ 23 s := strconv.FormatFloat(f, 'g', 5, 64) 24 25 fmt.Println(s) 26} 27
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang