780epv试图打印一个s32的过程中发现对于大数字很难打印出准确的数值,例如4294967295(0xffffffff),打印结果为一个科学计数法表示的数字,而且这个数字转化为字符串后仍为一个小数和e的多少次方的形式,那么如果是一个未知的大数据那么就无法得知其具体数值
print(4294967295)
print(tostring(4294967295))
打印结果
[2024-04-23 14:33:46.091][000000001.777] 4.294967e+09
[2024-04-23 14:33:46.092][000000001.778] 4.294967e+09
应为正确的数值
[2024-04-23 14:33:46.091][000000001.777] 4.294967e+09
[2024-04-23 14:33:46.092][000000001.778] 4.294967e+09
1.0.0.1
题外话,顺便问一下直接print(0xFFFFFFF)为什么打印值是-1,而不是4294967295
我这边还是使用的4294967295进行测试,mcu.x32会报错number has no integer representation,似乎这样的数字不是以整数的方式存储的,我使用string.format("%d",4294967295)也会报相同的错误,使用%f才能输出4.294967e+09与直接print的结果是相同的,但是精度上仍不足,使用%8f也无法提升精度
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论