简体   繁体   English

反序列化 json 数据时,是否可以将大双数转换为大十进制而不损失精度?

[英]Is it possible to convert large double number to big decimal without losing precision when deserializing a json data?

Customer sends me a json double data like "amount": 123345555789123495.38 and in our program we get the whole message and program get the value like 1.23345555789123488E17 Is it possible to convert this data right with precision??客户向我发送了 json 双数据,如“金额”:123345555789123495.38,在我们的程序中,我们获得了整个消息,程序获得了 1.23345555789123488E17 之类的值是否可以精确转换此数据?

@JsonProperty("map") private ConcurrentHashMap<String, Object> extensionMap; @JsonProperty("map") private ConcurrentHashMap<String, Object> extensionMap;

I tried new BigDecimal(String.valueOf(map.get("amount"))).setScale(2, BigDecimal.ROUND_HALF_EVEN);我尝试了 new BigDecimal(String.valueOf(map.get("amount"))).setScale(2, BigDecimal.ROUND_HALF_EVEN);

Output is: 123345555789123488.00 Output 是:123345555789123488.00

Try following尝试以下

import java.math.BigDecimal;导入 java.math.BigDecimal;

import static java.math.RoundingMode.HALF_UP;进口 static java.math.RoundingMode.HALF_UP;

public class Test {公共 class 测试 {

public static void main(String[] args) {
    String jsonAmount = "123345555789123495.38";
    BigDecimal amount = new BigDecimal(jsonAmount).setScale(2, HALF_UP);
}

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM