介绍
在程序开发中,我们经常需要将基本数据类型转成string类型。或者将string类型转成基本数据类型。
基本数据类型转string类型
方式1:fmt.Sprintf("%参数",表达式) 【个人习惯这个,灵活】
(1)参数需要和表达式的数据类型相匹配
(2)fmt.Sprintf()会返回转换后的字符串
(3)案例演示
package main
import (
"fmt"
)
func main() {
var num1 int = 99
var num2 float64 = 23.456
var b bool = true
var myChar byte = 'h'
var str string
//使用第一种方式转换 fmt.Sprintf方法
str = fmt.Sprintf("%d", num1) //int转
fmt.Printf("%T %q \n", str, str) //string "99"
str = fmt.Sprintf("%f", num2) //float转
fmt.Printf("%T %q \n", str, str) //string "23.456000"
str = fmt.Sprintf("%t", b) //bool转
fmt.Printf("%T %q \n", str, str) //string "true"
str = fmt.Sprintf("%c", myChar) //byte转
fmt.Printf("%T %q \n", str, str) //string "h"
}
方式2:使用strconv包的函数
- func FormatBool(b bool) string
- func FormatInt(i int64, base int) string
- func FormatUint(i uint64, base int) string
- func FormatFloat(f float64, fmt byte, prec, bitSize int) string
- func Itoa(i int) string int类型转为string类型
案例演示
package main
import (
"fmt"
"strconv"
)
func main() {
var num1 int = 99
var num2 float64 = 23.456
var b bool = true
// var myChar byte = 'h'
var str string
//func FormatInt(i int64, base int) string
str = strconv.FormatInt(int64(num1), 10) //10代表10禁止
fmt.Printf("%T %q \n", str, str) //string "99"
/**
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。
*/
str = strconv.FormatFloat(num2, 'f', 10, 64) //10:小数位保留10位, 64:表示这个小数时float64
fmt.Printf("%T %q \n", str, str) //string "23.4560000000"
str = strconv.FormatBool(b)
fmt.Printf("%T %q \n", str, str) //string "true"
var num3 int = 456
str = strconv.Itoa(num3)
fmt.Printf("%T %q \n", str, str) //string "true"
var num4 int64 = 4567
str = strconv.Itoa(int(num4)) //需要把int64转为int
fmt.Printf("%T %q \n", str, str) //string "true"
}