public static void main(String[] args) {
String s = "{"aa":[{"phone":2.512677562E10,"email":"","name":"佳雨"},{"phone":3.8741444021E10,"email":"","name":"三"}]}";
System.out.println(new BigDecimal("2.512677562E10").toPlainString());
System.out.println(new BigDecimal("3.8741444021E10").toPlainString());
JSONObject jsonObject = JSON.parseObject(s);
System.out.println(jsonObject);
}
输出结果
25126775620
38741444021
{"aa":[{"phone":2.512677562E+10,"name":"佳雨","email":""},{"phone":38741444021,"name":"三","email":""}]}
最后一位是0的科学计数法数值,不会进行转换
1条答案
按热度按时间bn31dyow1#
你好,你出现的这个问题与这个项目无关的,
问题出在BigDecimal这个类中
你可以尝试一下这个代码:
输出结果为:
2.512677562E+10
38741444021
BigDecimal 中有一个scale()函数
这个值是
小数点后的位数-指数
,所以这两个数值的scale分别为 -1 和 0
而且当scale的值为负数的时候,就会以科学技术法的形式表示
所以根本问题不在于结尾是0,也不在于项目程序,而是在BigDecimal这个类中
你可以自己尝试一下