问题:JSONObject获取Float类型数据会造成精度获取不准确
解决办法:将Float类型数据数据先转换成String类型,再put进JSONObject里就可以解决这个问题。
代码:
public class Test {
public static void main(String[] args) {
Float num = 1.2589355f;
JSONObject jsonObject = new JSONObject();
jsonObject.put("num", num);
System.out.println("jsonObject:"+jsonObject.get("num"));//获取的数据 jsonObject:1.2589354515075684
//将num转成String类型,再put进去,就可以获取到设置的num值
jsonObject.put("num1", num.toString());
System.out.println("jsonObject:"+jsonObject.get("num1"));//获取数据 jsonObject:1.2589355
}
}
在页面获取Float类型数据时,突然发现数据有点奇怪,与数据库的值对不上。就分别打印put前与put后的数据,发现数据对不上,原来问题在这。百度一波后,找到解决办法,先转成String类型,再put进去就可解决这个问题。
网友评论