当前位置:  开发笔记 > 编程语言 > 正文

在json响应中舍入的java long值

如何解决《在json响应中舍入的javalong值》经验,为你挑选了1个好方法。

在从JAVA中实现的restful服务获取JSON响应时,我观察到以01结尾的长数据类型值四舍五入为00.例如:

长期价值,

12345123459876501 is returned as 12345123459876500 (last digit rounded to 0)

12345123459876502 is returned as 12345123459876502

12345123451234501 is returned as 12345123451234500 (last digit rounded to 0)

12345123451234502 is returned as 12345123451234502

有人可以帮我理解为什么只有以01结尾的值才会四舍五入为00?



1> Michał Kosmu..:

json.org中定义的JSON 只有一个名为"number"的数字类型.如此多的Java JSON解析器将它映射到double类型,无论它是否用于整数,长整数的浮点数.但是,一个double只能容纳15-16个有效数字,而一个long可以存储更多数字.因此,如果您的long数字值大于该值,则当JSON解析器在long和之间进行转换时,精度会丢失double,从而将01后缀更改为00.如果要确保保留所有数字,则必须将字段类型更改为String并自行处理解析long.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有