Golang类型转换和检查

Golang类型转换和检查

strconv实现与基本数据类型与字符串转换。

如何在Go中将字符串转换为int类型?
  • ATOI将字符串转换为int类型。将整数转换为十进制字符串形式。
  • ParseInt解释给定基数(0,2到36)和位大小(0到64)中的字符串s并返回相应的值i。将字符串转换为十进制整数
package main

import "strconv"

func  main () {
    strVar := "100"
	intVar, _ := strconv.Atoi(strVar)
	strVar1 := "-52541"
	intVar1, _ := strconv.ParseInt(strVar1, 10, 32)

	strVar2 := "101010101010101010"
	intVar2, _ := strconv.ParseInt(strVar2, 10, 64)
	fmt.Printf("intVar:%d\n", intVar)
	fmt.Printf("intVar1:%d\n", intVar1)
	fmt.Printf("intVar2:%d\n", intVar2)
    
}
  • 结果
intVar:100
intVar1:-52541
intVar2:101010101010101010

如何在Go中将字符串转换为float类型?
  • ParseFloat将字符串s转换为浮点数,其精度由bitSize指定:32为float32,或64为float64
package main


import(
	 "fmt" 
	"strconv"
)

func  main () {
		s := "3.1415926535"
	f, _ := strconv.ParseFloat(s, 64)
	fmt.Printf("%T,%v \n", f, f)

	s1 := "-3.141"
	f1, _ := strconv.ParseFloat(s1, 64)
	fmt.Printf("%T,%v \n", f1, f1)

	s2 := "-3.141"
	f2, _ := strconv.ParseFloat(s2, 32)
	fmt.Printf("%T,%v \n", f2, f2)
}
  • 结果
float64,3.1415926535 
float64,-3.141 
float64,-3.1410000324249268 
如何在Go中将String转换为布尔数据类型转换?
  • ParseBool返回字符串表示的布尔值。它接受1,t,T,TRUE,true,True,0,f,F,FALSE,false,False。任何其他值都会返回错误。
package main

import(
	 "fmt" 
	"strconv"
)

func  main () {
s1 := "true"
	b1, _ := strconv.ParseBool(s1)
	fmt.Printf("%T,%v\n", b1, b1)

	s2 := "t"
	b2, _ := strconv.ParseBool(s2)
	fmt.Printf("%T,%v\n", b2, b2)

	s3 := "0"
	b3, _ := strconv.ParseBool(s3)
	fmt.Printf("%T,%v\n", b3, b3)

	s4 := "F"
	b4, _ := strconv.ParseBool(s4)
	fmt.Printf("%T,%v\n", b4, b4)
}
  • 结果
bool,true
bool,true
bool,false
bool,false
如何在Go中将Boolean Type转换为String?
  • FormatBool函数用于将布尔变量转换为String。
package main

import(
	 "fmt" 
	"reflect" 
	"strconv"
)

func  main () {
	var b bool = true
	fmt.Println(reflect.TypeOf(b))

	var s string = strconv.FormatBool(true)
	fmt.Println(reflect.TypeOf(s))
	fmt.Println(s)
}
  • 结果
bool
string
true
如何在Go中将Float转换为String类型?

-FormatFloat将浮点数f转换为字符串s。

package main

import(
	 "fmt" 
	"reflect" 
	"strconv"
)

func  main () {
	var f float64 = 3.1415926535
	fmt.Println(reflect.TypeOf(f))
	fmt.Println(f)

	var s = strconv.FormatFloat(f, 'E', -1, 32)
	fmt.Println(reflect.TypeOf(s))
	fmt.Println(s)
}
  • 结果
float64
3.1415926535
string
3.1415927E+00

将整数类型转换为字符串类型
  • FormatInt将整数i转换为String s。
package main

import(
	 "fmt" 
	"reflect" 
	"strconv"
)

func  main () {

	var i int64 = -654
	fmt.Println(reflect.TypeOf(i))
	fmt.Println(i)

	var s string = strconv.FormatInt(i, 10)
	fmt.Println(reflect.TypeOf(s))
	fmt.Println(s)
}

  • 结果
int64
-654
string
-654
将Int数据类型转换为Int16 Int32 Int64
package main

import (
	 "fmt" 
	"reflect"
)

func  main () {
	var i int = 10
	fmt.Println(reflect.TypeOf(i))

	i16 := int16(i)
	fmt.Println(reflect.TypeOf(i16))

	i32 := int32(i)
	fmt.Println(reflect.TypeOf(i32))

	i64 := int64(i)
	fmt.Println(reflect.TypeOf(i64))
}
  • 结果
int
int16
int32
int64
将Float32转换为Float64,将Float64转换为Float32
package main

import (
	 "fmt" 
	"reflect"
)

func  main () {

	var f32 float32 = 10.6556
	fmt.Println(reflect.TypeOf(f32))

	f64 := float64(f32)
	fmt.Println(reflect.TypeOf(f64))

	f64 = 1097.655698798798
	fmt.Println(f64)

	f32 = float32(f64)
	fmt.Println(f32)
}
  • 结果
float32
float64
1097.655698798798
1097.6556
在Int中将Int数据类型转换为Float
package main

import (
	 "fmt" 
	"reflect"
)

func  main () {
	var f32 float32 = 10.6556
	fmt.Println(reflect.TypeOf(f32))

	//会有精度损失
	i32 := int32(f32)
	fmt.Println(reflect.TypeOf(i32))
	fmt.Println(i32)

	f64 := float64(i32)
	fmt.Println(reflect.TypeOf(f64))
	fmt.Println(f64)
}
  • 结果
float32
int32
10
float64
10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoLiuRs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值