golang string、int、int64 float 互相转换方式
作者:不变不中
这篇文章主要介绍了golang string、int、int64 float 互相转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
golang string、int、int64 float 互相转换
#string到int
int,err := strconv.Atoi(string)
#string到int64
int64, err := strconv.ParseInt(string, 10, 64)
//第二个参数为基数(2~36),
//第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,
//分别对应 int, int8, int16, int32和int64
#int到string
string := strconv.Itoa(int)
//等价于
string := strconv.FormatInt(int64(int),10)
#int64到string
string := strconv.FormatInt(int64,10)
//第二个参数为基数,可选2~36
//对于无符号整形,可以使用FormatUint(i uint64, base int)
#float到string
string := strconv.FormatFloat(float32,'E',-1,32)
string := strconv.FormatFloat(float64,'E',-1,64)
// 'b' (-ddddp±ddd,二进制指数)
// 'e' (-d.dddde±dd,十进制指数)
// 'E' (-d.ddddE±dd,十进制指数)
// 'f' (-ddd.dddd,没有指数)
// 'g' ('e':大指数,'f':其它情况)
// 'G' ('E':大指数,'f':其它情况)
#string到float64
float,err := strconv.ParseFloat(string,64)
#string到float32
float,err := strconv.ParseFloat(string,32)
#int到int64
int64_ := int64(1234)golang float string int 相互转换 保留小数位
string 转换为 float
package main
import (
"fmt"
"strconv"
)
func main() {
input := "3.14"
f_input, _ := strconv.ParseFloat(input, 64)
fmt.Printf("%f - %T", f_input, f_input)
}执行结果
> go run main.go
3.140000 - float64
int 转化为 float
score := 100
f_score := float64(score)
fmt.Printf("%f - %T\n", f_score, f_score)
> 100.000000 - float64转换为 string,并保留3位小数
s_score := fmt.Sprintf("%.3f", f_score)注意,这样保留3位小数会自动四舍五入。
无论是 32位系统还是 64 位系统,都支持 float64
ubuntu 查看系统是 32 位还是 64 位
> uname -a Linux 509B65C8YW2THMJ 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
因为32位只是寄存器的一次处理的位数。配合不同的算法,多大的数字都可以处理。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
