arduino byte转string_go中基本数据类型与string类型相互转换的方法总结

1.基本数据类型转换为string类型

代码:

// 基本数据类型转换为string类型package mainimport ( "fmt" "strconv")func main() { // 第一种方式使用fmt.Sprintf var v1 int = 100 // v2的类型为float64 var v2 = 3.14 // v3的类型为int32 v3 := 'm' var v4 bool = false var str string str = fmt.Sprintf("%d", v1) fmt.Printf("v1的原值为%v, 类型为%T, 转换成string类型值为%q", v1, v1, str) // v1的原值为100, 类型为int, 转换成string类型值为"100" str = fmt.Sprintf("%f", v2) fmt.Printf("v2的原值为%v, 类型为%T, 转换成string类型值为%q", v2, v2, str) // v2的原值为3.14, 类型为float64, 转换成string类型值为"3.140000" str = fmt.Sprintf("%c", v3) fmt.Printf("v3的原值为%v, 类型为%T, 转换成string类型值为%q", v3, v3, str) // v3的原值为109, 类型为int32, 转换成string类型值为"m" str = fmt.Sprintf("%t", v4) fmt.Printf("v4的原值为%v, 类型为%T, 转换成string类型值为%q", v4, v4, str) // v4的原值为false, 类型为bool, 转换成string类型值为"false" // 第二种方式使用strconv包的函数 var v5 uint8 = 100 var v6 bool = true var v7 int = 999999 var v8 float32 = 3.1415926 var v9 float64 = 3.1415926 str = strconv.FormatUint(uint64(v5), 10) fmt.Printf("v5的原值为%v, 类型为%T, 转换成string类型值为%q", v5, v5, str) // v5的原值为100, 类型为uint8, 转换成string类型值为"100" str = strconv.FormatBool(v6) fmt.Printf("v6的原值为%v, 类型为%T, 转换成string类型值为%q", v6, v6, str) // v6的原值为true, 类型为bool, 转换成string类型值为"true" str = strconv.FormatInt(int64(v7), 10) fmt.Printf("v7的原值为%v, 类型为%T, 转换成string类型值为%q", v7, v7, str) // v7的原值为999999, 类型为int, 转换成string类型值为"999999" // 注意转换之后有精度的损失 // 第二个参数表示转换格式byte类型,如 'f', 'b'等 // 第三个参数表示精度,如保留几位小数 // 第四个参数表示位数为int型 str = strconv.FormatFloat(float64(v8), 'f', 10, 64) fmt.Printf("v8的原值为%v, 类型为%T, 转换成string类型值为%q", v8, v8, str) // v8的原值为3.1415925, 类型为float32, 转换成string类型值为"3.1415925026" str = strconv.FormatFloat(v9, 'f', 10, 64) fmt.Printf("v8的原值为%v, 类型为%T, 转换成string类型值为%q", v9, v9, str) // v8的原值为3.1415926, 类型为float64, 转换成string类型值为"3.1415926000" // 使用strconv包的Itoa函数 // strconv.Itoa 等价于 strconv.FormatInt(int64(i), 10) var v10 uint8 = 127 str = strconv.Itoa(int(v10)) fmt.Printf("v10的原值为%v, 类型为%T, 转换成string类型值为%q", v10, v10, str) // v10的原值为127, 类型为uint8, 转换成string类型值为"127"}

总结:

ec7459d117acc5a66222c25032674fc1.png

基本数据类型转换为string类型

2.string类型转换为基本数据类型

代码:

// string类型转基本数据类型package mainimport ( "fmt" "strconv")func main() { str1 := "false" var b bool // 函数ParseBool会返回两个值 // "_"表示会忽略掉第二个返回值 b, _ = strconv.ParseBool(str1) fmt.Printf("str1原值为%q, 转换为%T类型, 值为%v", str1, b, b) // str1原值为"false", 转换为bool类型, 值为false str2 := "-100" var n1 int64 // ParseInt函数中,第二个参数表示进制,第三个参数表示位数 // 注意该函数的返回值为int64类型 n1, _ = strconv.ParseInt(str2, 10, 64) fmt.Printf("str2原值为%q, 转换为%T类型, 值为%v", str2, n1, n1) // str2原值为"-100", 转换为int64类型, 值为-100 str3 := "128" var n2 uint8 // n3的类型是uint64 n3, _ := strconv.ParseUint(str3, 10, 64) n2 = uint8(n3) fmt.Printf("str3原值为%q, 转换为%T类型, 值为%v", str3, n2, n2) // str3原值为"128", 转换为uint8类型, 值为128 str4 := "-3.141592678" var f1 float32 // f2的类型为float64 f2, _ := strconv.ParseFloat(str4, 64) f1 = float32(f2) // 注意转换之后精度有损失 fmt.Printf("str4原值为%q, 转换为%T类型, 值为%v", str4, f1, f1) // str4原值为"-3.141592678", 转换为float32类型, 值为-3.1415927 // 要确保string类型能够转换成有效的数据,否则会被转换成对应类型的默认值, // 比如:字符串"today"被转换为整数后值为0,转换成浮点数值为0,转换成布尔值为false。 str5 := "today" c1, _ := strconv.ParseInt(str5, 10, 64) fmt.Printf("str5原值为%q, 转换为%T类型, 值为%v", str5, c1, c1) // str5原值为"today", 转换为int64类型, 值为0 c2, _ := strconv.ParseFloat(str5, 64) fmt.Printf("str5原值为%q, 转换为%T类型, 值为%v", str5, c2, c2) // str5原值为"today", 转换为float64类型, 值为0 c3, _ := strconv.ParseBool(str5) fmt.Printf("str5原值为%q, 转换为%T类型, 值为%v", str5, c3, c3) // str5原值为"today", 转换为bool类型, 值为false str6 := "711today" c4, _ := strconv.ParseInt(str6, 10, 64) fmt.Printf("str6原值为%q, 转换为%T类型, 值为%v", str6, c4, c4) // str6原值为"711today", 转换为int64类型, 值为0 c5, _ := strconv.ParseFloat(str6, 64) fmt.Printf("str6原值为%q, 转换为%T类型, 值为%v", str6, c5, c5) // str6原值为"711today", 转换为float64类型, 值为0 c6, _ := strconv.ParseBool(str6) fmt.Printf("str6原值为%q, 转换为%T类型, 值为%v", str6, c6, c6) // str6原值为"711today", 转换为bool类型, 值为false}

总结:

002899ad37846f5ea0b91a7fe9f1361b.png

string类型转换为基本数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值