登录
首页 >  Golang >  Go问答

超出范围的值:strconv.ParseInt解析"18446744073709551615"

来源:stackoverflow

时间:2024-02-11 14:30:24 245浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《超出范围的值:strconv.ParseInt解析"18446744073709551615"》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

使用 strconv.parseint 解析 uint64 最大值时这是正常行为吗?

i, err := strconv.ParseInt("18446744073709551615", 10, 64)
fmt.Println(i, err)

我收到错误:“strconv.parseint:解析“18446744073709551615”:值超出范围“,当uint64的最大允许值为:18446744073709551615

你能解释一下这种行为吗?

https://golang.org/src/builtin/builtin.go?s=1026:1044#l26


正确答案


调用 parseuint 解析无符号整数。

parseint 函数解析有符号整数。最大有符号整数是 9223372036854775807。

根据评论,我将您的代码复制如下:

package main

import (
    "fmt"
    "strconv"
)

func main() {

    i, err := strconv.parseuint("18446744073709551615", 10, 64)
    fmt.println(i, err)

}

输出:

18446744073709551615 

好了,本文到此结束,带大家了解了《超出范围的值:strconv.ParseInt解析"18446744073709551615"》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>