在Java中,我們經常需要在程序中處理大量的小數運算,然而直接使用雙精度浮點數會有精度丟失的問題。這時候,我們可以通過BigDecimal來解決這個問題,并且還能方便地接收JSON數據。
import java.math.BigDecimal; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class Test { public static void main(String[] args) throws Exception { String jsonStr = "{\"price\":9.99}"; ObjectMapper mapper = new ObjectMapper(); JsonNode jsonNode = mapper.readTree(jsonStr); BigDecimal price = jsonNode.get("price").decimalValue(); System.out.println(price); } }
以上代碼演示了如何將一個JSON字符串轉換成一個BigDecimal對象,并且提取其中的價格字段。
需要注意的是,在使用BigDecimal進行計算時,我們需要使用特定的方法,不能直接使用運算符。下面是一些示例:
BigDecimal a = new BigDecimal("9.99"); BigDecimal b = new BigDecimal("2.50"); BigDecimal sum = a.add(b); // 12.49 BigDecimal diff = a.subtract(b); // 7.49 BigDecimal prod = a.multiply(b); // 24.975 BigDecimal quotient = a.divide(b); // 拋出異常,需要指定精度 BigDecimal quotient2 = a.divide(b, 2, BigDecimal.ROUND_HALF_UP); // 3.99 BigDecimal remainder = a.remainder(b); // 0.49
以上就是使用BigDecimal接收JSON的相關內容,希望對你有所幫助。