像大多数现代语言一样,Golang 包含字符串作为内置类型。让我们举个例子,你可能有一个包含数值“3.1415926535”的字符串。但是,由于此值表示为字符串,因此无法对其执行任何数学计算。您需要将此字符串类型显式转换为浮点类型,然后才能对其执行任何数学计算。

ParseFloat()函数

ParseFloat将字符串s转换为由bitSize指定的精度的浮点数:32表示float32,64表示float64。当bitSize=32时,结果的类型仍然为float64,但它可以转换为float32,而无需更改其值。

func ParseFloat(s string, bitSize int) (float64, error)
package main

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

func main() {
	s := "3.1415926535"
	f, err := strconv.ParseFloat(s, 8)
	fmt.Println(f, err, reflect.TypeOf(f))

	s1 := "-3.141"
	f1, err := strconv.ParseFloat(s1, 8)
	fmt.Println(f1, err, reflect.TypeOf(f1))

	s2 := "A-3141X"
	f2, err := strconv.ParseFloat(s2, 32)
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println(f2, err, reflect.TypeOf(f2))
	}
}

要检查转换过程中是否发生错误,请检查err变量是否包含nil值。

输出

3.1415926535 <nil> float64
-3.141 <nil> float64
strconv.ParseFloat: parsing "A-3141X": invalid syntax