如何在Go中将一长串数字(50位数字)转换为整数?我正在获取以下代码的输出:number = 2147483647err = strconv.ParseInt:解析“ 37107287533902102798797998220837590246510135740250”:值超出范围它似乎最多只能转换数字2147483647。package mainimport "fmt"import "io/ioutil"import "strings"import "strconv"var ( number int64)func main() { fData,err := ioutil.ReadFile("one-hundred_50.txt") if err != nil { fmt.Println("Err is ",err) } strbuffer := string(fData) lines := strings.Split(strbuffer, "\n") for i, line := range lines { fmt.Printf("%d: %s\n", i, line) number, err := strconv.Atoi(line) fmt.Println("number = ", number) fmt.Println("err = ", err) } }
1 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
您需要math / big软件包,该软件包提供任意精度的整数支持。
import "math/big"
func main() {
// ...
for i, line := range lines {
bi := big.NewInt(0)
if _, ok := bi.SetString(line, 10); ok {
fmt.Printf("number = %v\n", bi)
} else {
fmt.Printf("couldn't interpret line %#v\n", line)
}
}
}
这是它起作用的一个简单示例。
- 1 回答
- 0 关注
- 228 浏览
添加回答
举报
0/150
提交
取消