json引起的float/double类型精度丢失问题
·
JSONObject obj = new JSONObject();
float a = 15.123f; //这里加f是表示这是浮点型,15.123默认是double的
float b=15;
obj.put("floata", a);
obj.put("floatb",b);
obj.put("Stringa", a+""); //加上“”自动转string类型,也可以使用String.valueOf(aa)转为String类型
System.out.println(obj.get("floata"));
System.out.println(obj.get("floatb"));
System.out.println(obj.get("Stringa"));
以上三种情况中,获取到的obj中floata会变成:15.123000144958496,这是json引起的精度丢失问题。
而floatb中会得到15.0;
Stringa则显示正确的15.123。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)