Go语言 字符串和小数转换! !!!
避坑系列
func main() {
str := "2313.1415926535"
a, _ := strconv.ParseFloat(str, 32)
fmt.Println("a : " , a) // 2313.1416015625 类型: float64
b, _ := strconv.ParseFloat(str, 64)
fmt.Println("b : " , b) // 2313.1415926535 类型:float64
c, _ := strconv.ParseFloat(fmt.Sprint("%.3f", str), 64)
fmt.Println("c : " ,c) // 0 类型: float64
//---------------------------------------
d1 := fmt.Sprintf("%.3f", b)
fmt.Println("d1 : " , d1) // 13.14 类型: str
打印结果如下:
a : 2313.1416015625
b : 2313.1415926535
c : 0
d1 : 2313.142
不难看出 c和d1 上
主要函数 fmt.Sprint("%.3f", 浮点型的参数)
经过查看很简单
在 c 的 输入里有这么一个函数 fmt.Sprint("%.3f", str)
这个函数的第二个参数str是个 字符串类型 所以转换成了"0"
而 d1 的 fmt.Sprintf("%.3f", b) 中 b 它是个浮点型的
第一个参数 来取小数点后位, 我这里写的3f 所以结果为 2313.142