ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### ParseBool ~~~ func ParseBool(str string) (bool, error) ~~~ **ParseBool 将字符串转换为布尔值** 它接受真值:1, t, T, TRUE, true, True 它接受假值:0, f, F, FALSE, false, False. 其它任何值都返回一个错误 示例 ~~~ package main import ( "fmt" "strconv" ) func main() { b, err := strconv.ParseBool("t") if err == nil{ fmt.Println(b) }else{ fmt.Println(err) } } ~~~ ### FormatBool **将布尔值转换为字符串 "true" 或 "false"** ~~~ res := strconv.FormatBool(0 > 1) fmt.Println(res) ~~~ ### ParseFloat ``` func ParseFloat(s string, bitSize int) (f float64, err error) ``` **ParseFloat 将字符串转换为浮点数** s:要转换的字符串 bitSize:指定浮点类型(32:float32、64:float64) 如果 s 是合法的格式,而且接近一个浮点值, 则返回浮点数的四舍五入值(依据 IEEE754 的四舍五入标准) 如果 s 不是合法的格式,则返回“语法错误” 如果转换结果超出 bitSize 范围,则返回“超出范围” ~~~ s := "3.1415926" f, err := strconv.ParseFloat(s, 64) if err == nil{ fmt.Println(f) // 3.1415926 }else{ fmt.Println(err) } ~~~ ### ParseInt ~~~ func ParseInt(s string, base int, bitSize int) (i int64, err error) ~~~ **ParseInt 将字符串转换为 int 类型** s:要转换的字符串 base:进位制(2 进制到 36 进制) bitSize:指定整数类型(0:int、8:int8、16:int16、32:int32、64:int64) 返回转换后的结果和转换时遇到的错误 如果 base 为 0,则根据字符串的前缀判断进位制(0x:16,0:8,其它:10) ~~~ s := "0101" i, err := strconv.ParseInt(s, 2, 0) fmt.Println(err, i) // 5 s = "233" i, err = strconv.ParseInt(s, 0, 0) fmt.Println(err, i) // 233 ~~~ ### ParseUint ``` func ParseUint(s string, base int, bitSize int) (n uint64, err error) ``` **ParseUint 功能同 ParseInt 一样,只不过返回 uint 类型整数** ~~~ fmt.Println(strconv.ParseUint("FF", 16, 8)) // 255 <nil> ~~~ ### Atoi ~~~ func Atoi(s string) (int, error) ~~~ **Atoi 相当于 ParseInt(s, 10, 0)** 通常使用这个函数,而不使用 ParseInt ~~~ fmt.Println(strconv.Atoi("518")) // 518 <nil> ~~~ ### FormatFloat ``` func FormatFloat(f float64, fmt byte, prec, bitSize int) string ``` **FormatFloat 将浮点数 f 转换为字符串值** f:要转换的浮点数 fmt:格式标记(b、e、E、f、g、G) prec:精度(数字部分的长度,不包括指数部分) bitSize:指定浮点类型(32:float32、64:float64) 格式标记: 'b' (-ddddp±ddd,二进制指数) 'e' (-d.dddde±dd,十进制指数) 'E' (-d.ddddE±dd,十进制指数) 'f' (-ddd.dddd,没有指数) 'g' ('e':大指数,'f':其它情况) 'G' ('E':大指数,'f':其它情况) 如果格式标记为 'e','E'和'f',则 prec 表示小数点后的数字位数 如果格式标记为 'g','G',则 prec 表示总的数字位数(整数部分+小数部分) ~~~ f := 100.123456789 fmt.Println(strconv.FormatFloat(f, 'g', 5, 64)) // 100.12 fmt.Println(strconv.FormatFloat(f, 'G', 5, 64)) // 100.12 fmt.Println(strconv.FormatFloat(f, 'f', 5, 64)) // 100.12346 fmt.Println(strconv.FormatFloat(f, 'e', 5, 64)) // 1.00123e+02 fmt.Println(strconv.FormatFloat(f, 'E', 5, 64)) // 1.00123E+02 ~~~ ### FormatInt ``` func FormatInt(i int64, base int) string ``` **FormatInt 将 int 型整数 i 转换为字符串形式** base:进位制(2 进制到 36 进制) 大于 10 进制的数,返回值使用小写字母 'a' 到 'z' ~~~ i := int64(100) fmt.Println(strconv.FormatInt(i, 10)) // 100 fmt.Println(strconv.FormatInt(i, 2)) // 1100100 fmt.Println(strconv.FormatInt(i, 16)) // 64 ~~~ ### Itoa ``` func Itoa(i int) string ``` **Itoa 相当于 FormatInt(i, 10) ** ~~~ func main() { fmt.Println(strconv.Itoa(-2048)) // -2048 fmt.Println(strconv.Itoa(2048)) // 2048 } ~~~ ### FormatUint ``` func FormatUint(i uint64, base int) string ``` **FormatUint 将 uint 型整数 i 转换为字符串形式** base:进位制(2 进制到 36 进制) 大于 10 进制的数,返回值使用小写字母 'a' 到 'z' ~~~ func main() { i := uint64(2048) fmt.Println(strconv.FormatUint(i, 2)) // 100000000000 fmt.Println(strconv.FormatUint(i, 8)) // 4000 fmt.Println(strconv.FormatUint(i, 10)) // 2048 fmt.Println(strconv.FormatUint(i, 16)) // 800 fmt.Println(strconv.FormatUint(i, 36)) // 1kw } ~~~