急高分求解一个从数据库取浮点数据的有关问题

急,高分求解一个从数据库取浮点数据的问题
数据库: sql server 2008,数据类型 real;

数据层: ibatis;

程序对应字段类型:Double。

问题:数据库1.8的数据,程序取出来后变成了1.7999999523162842,字段类型改为float,则是正确的1.8,但是使用JSONArray 把对象列表转为JSON数组的时候,该属性的值在JSON数组中又变成了1.7999999523162842。
请问怎么解决? 




------解决方案--------------------
转json的时候把1.8当成String转就不会出现精度丢失的问题了。。
------解决方案--------------------
BigDecimal a = new BigDecimal(1.2);
double b = (a.doubleValue());
正确方法应该是使用用这个类去转!得到的正确的结果