当前位置:网站首页>基本数据类型和string类型互相转化

基本数据类型和string类型互相转化

2022-07-07 05:27:00 Jimmy_jimi

基本数据类型转string

方法一:fmt.Sprintf格式化

import "fmt"

func main() {
    
	var num1 int = 99
	var num2 float64 = 123.12
	var b bool = true
	var myChar byte = 'h'
	
	//int 转为 string
	str := fmt.Sprintf("%d", num1)
	fmt.Printf("str type : %T , str=%q", str, str)

	//float64 转为 string
	str = fmt.Sprintf("%f", num2)
	fmt.Printf("str type : %T , str=%q", str, str)

	//bool 转为 string
	str = fmt.Sprintf("%t", b)
	fmt.Printf("str type : %T , str=%q", str, str)

	//byte 转为 string
	str = fmt.Sprintf("%c", myChar)
	fmt.Printf("str type : %T , str=%q", str, str)
}

// str type : string , str="99"
// str type : string , str="123.120000"
// str type : string , str="true"
// str type : string , str="h"

方法二:strconv包的函数

import (
	"fmt"
	"strconv"
)

func main() {
    
	var num1 int = 99
	var num2 float64 = 123.12
	var b bool = true
	var myChar byte = 'h'

	//方式一、int 转为 string
	str := strconv.FormatInt(int64(num1), 10)
	fmt.Printf("str type : %T , str=%q", str, str)

	//方式二、int 转为 string
	str = strconv.Itoa(num1)
	fmt.Printf("str type : %T , str=%q", str, str)

	//float64 转为 string
	str = strconv.FormatFloat(num2, 'f', 10, 64)
	fmt.Printf("str type : %T , str=%q", str, str)

	//bool 转为 string
	str = strconv.FormatBool(b)
	fmt.Printf("str type : %T , str=%q", str, str)

	//byte 转为 string
	//str = strconv.Itoa(int(myChar))
	str = string(myChar)
	fmt.Printf("str type : %T , str=%q", str, str)
}

// str type : string , str="99"
// str type : string , str="99"
// str type : string , str="123.1200000000"
// str type : string , str="true"
// str type : string , str="h"

string类型转基本数据类型

package main

import (
	"fmt"
	"strconv"
)

func main() {
    
	var num1 string = "99"
	var num2 string = "123.12"
	var b string = "true"

	// string 转为 int64
	//10 表示输出后的进制,2-32进制
	//这里64为限制位,不是指定输出的数据类型,事实上strconv.ParseInt只能返回int64类型数据,bitesize限制的是数据大小,如果转化后的整形数据num1超过127,那么err就会显示数据超出范围(报错(variable of type int64) as type int in argument to fbn原因分析).
	str, _ := strconv.ParseInt(num1, 10, 64)
	fmt.Printf("str type: %T str=%d", str, str)

	// string 转为 float64
	number, _ := strconv.ParseFloat(num2, 64)
	fmt.Printf("str type: %T str=%f", number, number)

	// string 转为 bool
	ret, _ := strconv.ParseBool(b)
	fmt.Printf("str type: %T str=%t", ret, ret)
}

原网站

版权声明
本文为[Jimmy_jimi]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42269472/article/details/125637928