json解析没有自动格式的长双精度值

时间:2017-09-12 13:21:09

标签: java android

我试图用一些值解析json数组。 对于像#34; 0.00009800"。

这样的长值有一些问题

我已经尝试过jsonObject.getDouble和getString - 它返回9.8E-5。 也尝试了相同结果的BigDecimal。

它应该是我想要的简单解决方案。

tmp.high24h = Double.valueOf(e.getString("High"));
tmp.low24h = java.math.BigDecimal.valueOf(e.getDouble("Low")).doubleValue();

3 个答案:

答案 0 :(得分:2)

9.8E-5是预期值。它代表9.8 * 10^(-5)

答案 1 :(得分:0)

始终对较大的十进制值使用 String 数据类型。将json字符串转换为java对象后,通过在BigDecimal构造函数中将字符串作为参数传递,将其转换为BigDecimal值。

答案 2 :(得分:0)

知道了:

tmp.high24h = e.getDouble("High");
String test = String.format(Locale.US, "%.5f", tmp.high24h);