为什么浮点值在JSONArray中附加小数点后面的额外值?

时间:2015-05-16 09:53:39

标签: android json

代码如下:

float f = 1.7f;
JSONArray ja = new JSONArray();
try {
    ja.put(f);
    Log.d("json", "f=" + f);
    Log.d("json", "ja=" + ja.toString());
} catch (JSONException e) {
    e.printStackTrace();
}

输出结果为:

05-16 17:49:30.559  32554-32554/com.group.home D/json﹕ f=1.7
05-16 17:49:30.559  32554-32554/com.group.home D/json﹕ ja=[1.7000000476837158]

如果f1.0,则输出为ja=1

000000476837158来自哪里?我应该如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

JSONArray课程中没有JSONArray#put(float),因此您的f变量会转换为double

看一下这个问题:Convert float to double without losing precision