簡體   English   中英

反序列化 json 數據時,是否可以將大雙數轉換為大十進制而不損失精度?

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

客戶向我發送了 json 雙數據,如“金額”:123345555789123495.38,在我們的程序中,我們獲得了整個消息,程序獲得了 1.23345555789123488E17 之類的值是否可以精確轉換此數據?

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

我嘗試了 new BigDecimal(String.valueOf(map.get("amount"))).setScale(2, BigDecimal.ROUND_HALF_EVEN);

Output 是:123345555789123488.00

嘗試以下

導入 java.math.BigDecimal;

進口 static java.math.RoundingMode.HALF_UP;

公共 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