golang中string int float bool类型相互转换

832 阅读1分钟

golang中string int float bool类型相互转换

package main

import (
	"fmt"
	"strconv"
)

func IntToString() {
	//todo :int to string
	v := 456
	vS := strconv.Itoa(v)
	fmt.Println(vS) //方法1,简便版

	//todo :int64 to string
	var vI64 int64 = 789
	vInt64S := strconv.FormatInt(vI64, 10) //方法2,int64转string,可指定几进制
	fmt.Println(vInt64S)

	//todo :uint64 to string
	var vUI64 uint64 = 91011
	vUI64S := strconv.FormatUint(vUI64, 10) //方法3, uint64转string,可指定几进制
	fmt.Println(vUI64S)
}

func StringToInt() {
	//todo :string to int/int64
	s := "123"
	vInt, _ := strconv.Atoi(s) //方法1,便捷版
	fmt.Println(vInt)

	vInt64, _ := strconv.ParseInt(s, 10, 64) //方案2,有符号整型,可以指定几进制,整数长度
	fmt.Println(vInt64)

	vUInt64, _ := strconv.ParseUint(s, 10, 64) //方案3,无符号整型,可以指定几进制,整数长度
	fmt.Println(vUInt64)
}

func StringToFloat() {
	//todo :string to float
	f64, _ := strconv.ParseFloat("123.456", 64) //方法1,可以指定长度
	fmt.Println(f64)
}

func FloatToString() {
	//todo :float to string
	f64 := 1223.13252
	sF64 := strconv.FormatFloat(f64, 'f', 5, 64) //方法1,可以指定输出格式、精度、长度
	fmt.Println(sF64)
}

func StringToBool() {
	//todo :string to bool
	//// 接受 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False 等字符串;
	//// 其他形式的字符串会返回错误
	b, _ := strconv.ParseBool("1")
	fmt.Println(b)
}
func BoolToString() {
	//todo :bool to string
	sBool := strconv.FormatBool(true) //方法1
	fmt.Println(sBool)
}

func TimeTrans() {
	//todo :时间转时间戳
	fmt.Println(time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix())
	//todo :时间戳转时间
	fmt.Println(time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")) //2014-01-07 09:32:12
}

func main() {
	StringToInt()
	IntToString()
	StringToFloat()
	FloatToString()
	BoolToString()
	StringToBool()
    TimeTrans()
}