将长字符串转换为int64 - Go

 qianyu2602915863 发布于 2023-02-13 15:01

我找到了将长字符串格式的整数转换为Go中的int64的方法.我使用了strconv.Atoi,但它给了我一个错误,称"值超出范围".我搜索了我找到的答案

ParseInt(s string, base int, bitSize int) (i int64, err error)

在strconv包中.但是,我不明白我应该为函数参数提供什么值,包括base和bitSize.

我试图将我从HTTP请求收到的字符串格式的datastore.Key.IntID()解析回int64,以创建在数据存储上执行查询的新密钥.

任何人都可以向我解释一下base和bitSize参数以及我应该在这种情况下在参数中提供什么值?

1 个回答
  • func ParseInt

    func ParseInt(s string, base int, bitSize int) (i int64, err error)
    

    ParseInt解释给定基数(2到36)中的字符串s并返回相应的值i.如果base == 0,则字符串的前缀暗示基数:base 16表示"0x",base 8表示"0",否则表示10.

    bitSize参数指定结果必须适合的整数类型.位大小0,8,16,32和64对应于int,int8,int16,int32和int64.

    ParseInt返回的错误具有具体类型*NumError并包含err.Num = s.如果s为空或包含无效数字,则err.Err = ErrSyntax; 如果对应于s的值不能用给定大小的有符号整数表示,则err.Err = ErrRange.

    例如,

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        s := "9223372036854775807"
        i, err := strconv.ParseInt(s, 10, 64)
        if err != nil {
            fmt.Println(err)
            return
        }
        fmt.Println(i)
    }
    

    输出:

    9223372036854775807
    

    2023-02-13 15:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有