首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libjson是否支持64位int类型?

libjson是否支持64位int类型?
EN

Stack Overflow用户
提问于 2013-05-29 17:14:53
回答 1查看 2.5K关注 0票数 3

我正在尝试使用json.push_back调用将64位整数数据推送到JSONNode

代码语言:javascript
复制
    uint64_t myHigh = 0x10;          
    uint64_t myLow = 0x12;
    uint64_t myFinal = 0;


    myFinal = (myHigh << 32) | myLow ;

    std::cout << "val = 0x" << std::hex << myFinal << "\n";-----(1)
    JSONNode jvData;

    jvData.push_back(JSONNode("value",myFinal));
    std::cout<<jvData.write();--------------------------(2)

cout (1)的值为0xa0000000c,cout (2)的值为12。

我希望cout (2)的值为42949672972,但看起来并不像预期的那样工作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-29 17:23:25

由于JavaScript内部将值编码为64位浮点值(http://ecma262-5.com/ELS5_HTML.htm#Section_8.5),因此不能在JSON中表示64位整数。

因此,您的精度限制为53位(2^53)。

如果您想交换64位整数,您可以使用字符串或将64位整数拆分为两个32位整数,然后将它们重新组合(What is the accepted way to send 64-bit values over JSON?)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16809932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档