golang 中int, float, string 以及interface{}直接的互相转换

int 转float

1
2
3
4
var a int
var b float64
a = 10
b = float64(a)           //ps: 如果是float32,就使用float32(a)

int 转string

1
2
3
4
5
6
7
8
9
//第一种方式通过 fmt.sPrintf() 转换string
var str string
a := 10
str = fmt.Sprintf("%d", a)

//第二种方式通过 strconv包 转换 string
var str1 string
a1 := 10
str1 = strconv.FormatInt(int64(a1), 10)


float 转int

1
2
3
4
var a float32
var b int
a = 12.0
b = int(a)

float 转string

1
2
3
也是两种方式
第一种方式通过 fmt.sPrintf() 转换string
第二种方式通过 strconv包 转换 string  strconv.FormatFloat()


string 转int

1
2
3
4
5
6
7
//第一种方式通过 strconv.Atoi
var str string
str = 10
int, err := strconv.Atoi(str)

//第二种方式通过strconv.ParseInt
int64, err := strconv.ParseInt(string, 10, 64)

string转float

1
float,err := strconv.ParseFloat(string,64)  (64/32)


interface{}转其他类型

var a interface{}
	//a = 10
	//a = 10.1
	a = "sss"
	var b int
	var c float64
	var d string
	switch t := a.(type) {
	case int:
		fmt.Println("int")
		b = a.(int)            //interface{} 转 int
		fmt.Println(b)
	case float64:
		c = a.(float64)       //interface{} 转 float
		fmt.Println(c)
	case string:
		d = a.(string)       //interface{} 转 string
		fmt.Println(d)
	default:
		_ = t
		fmt.Println("unKonw")
	}

使用 inter.(type)

inter是interface{}变量的名字,type是具体的类型(int,float32等)