she*_*514 9 casting type-conversion go
我想在golang中将字符串转换为整数.但我不知道字符串的格式.例如,"10"
- > 10
,"65.0"
- > 65
,"xx"
- > 0
,"11xx" - > 11,"xx11" - > 0
我做了一些搜索并找到了strconv.ParseInt()
.但它无法处理"65.0"
.所以我必须检查字符串的格式.
有没有更好的办法?
小智 11
您可以使用这三个函数将字符串值转换为整数或浮点数。
注意:strconv
必须导入内置包才能执行这些功能。
func Atoi(s string) (int, error)
func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseFloat(s string, bitSize int) (float64, error)
package main
import (
"fmt"
"strconv"
)
func main() {
i, _ := strconv.Atoi("-42")
fmt.Println(i)
j,_ := strconv.ParseInt("-42", 10, 8)
fmt.Println(j)
k,_ := strconv.ParseFloat("-42.8", 8)
fmt.Println(k)
}
Run Code Online (Sandbox Code Playgroud)
我相信你正在寻找的功能是
strconv.ParseFloat()
Run Code Online (Sandbox Code Playgroud)
看这里的例子
但是这个函数的返回类型是float64.
如果你不需要传递数字的小数部分作为字符串跟随函数将完成工作:
func StrToInt(str string) (int, error) {
nonFractionalPart := strings.Split(str, ".")
return strconv.Atoi(nonFractionalPart[0])
}
Run Code Online (Sandbox Code Playgroud)
package main
import "strconv"
import "fmt"
// The built-in package "strconv" provides the number parsing.
// For `ParseInt`, the `0` means infer the base from
// the string. `64` requires that the result fit in 64
// bits.
value, err := strconv.ParseInt("123", 0, 64)
if err != nil {
panic(err)
}
fmt.Println(value)
Run Code Online (Sandbox Code Playgroud)
10
如果您总是想要相同的东西,您也可以传递非零基数(例如)。
归档时间: |
|
查看次数: |
21665 次 |
最近记录: |