我在工作时有一个来自API的JSON源,在这里我必须从JSON响应中获取平衡,因此该值非常重要。该金额以xx.xxxxxxxxxxxxxx(通常为两位数,最多14位小数)表示。
我正在使用JAVA。不管我尝试什么,输出始终是相同的。控制台说它是浮动的,我不能将其转换为任何其他格式。最奇怪的是,显示的数字是错误的。例如,我在JSON响应中得到803.599310421,当我打印出该值时,它显示为803.5989647583。数字相同,但小数位数不同。
如何准确获得此信息?坦率地说,我不想将其解析为字符串。我可以从JSON获得相同值的唯一方法是使用子字符串。
这是我正在使用的代码:
JsonPath jsonobject = httpRequest2.jsonPath();
float myFloatValue = jsonobject.get("data[0].balance");
System.out.println(myFloatValue);
以下是JSON中值的示例:903.40019831 这是Sysout的打印内容:903.4004或903.4003987 完全没用,请帮忙!
答案 0 :(得分:1)
浮点精度不高。 使用BigDecimal。 https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html