如何在golang中将字符串转换为整数

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必须导入内置包才能执行这些功能。

  1. func Atoi(s string) (int, error)
  2. func ParseInt(s string, base int, bitSize int) (i int64, err error)
  3. 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)


May*_*tel 9

我相信你正在寻找的功能是

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)


Dee*_*k G 5

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 次

最近记录:

6 年,11 月 前