使用JSONObject发送到Web服务 当我们把双(圆数)放零并且点被移除
CODE
double d = 123.00;
JSONObject json = new JSONObject();
json.put("param", d);
System.out.println(json.toString());
输出
{"param":17}
我可以将带小数位的双精度放到JSONObject
答案 0 :(得分:0)
使用getDouble(String name)读取该值。
喜欢
System.out.println(json.getDouble("param"));
如果您看到JSONObject的toString()
663 public String toString(int indentSpaces) throws JSONException {
664 JSONStringer stringer = new JSONStringer(indentSpaces);
665 writeTo(stringer);
666 return stringer.toString();
667 }
668
669 void writeTo(JSONStringer stringer) throws JSONException {
670 stringer.object();
671 for (Map.Entry<String, Object> entry : nameValuePairs.entrySet()) {
672 stringer.key(entry.getKey()).value(entry.getValue());
673 }
674 stringer.endObject();
675 }
writeTo()
将值写为Object
。所以这可能是toString()
显示双重意外值的原因。
答案 1 :(得分:0)
Na,更好地使用此函数,即使你将float转换为double:
public static double roundToDouble(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
}