java中如何把float类型转换成double类型保证精确

我在java编程中发现把float类型数据存入double类型的数据表字段中时,数值改变了,例如:1.234 变成 1.23399999327,5.99变成5.99000128,等等。
虽然读出数据显示是正常,但是有没有办法让float存进double的数和原来一样呢?

请指教!

float f = 1.2f;
double d = Double.parseDouble(String.valueOf(f)) ;
System.out.println(d);
直接转换会设计到精度问题,所以需要借助字符串 保证不丢失数据
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-11
float是32bit单精度浮点,
double是64bit双精度浮点
有效数位相差很多。float约5-6个十进制数字,
单精度常量末尾加f表示法:
float
x=0.1f;
第2个回答  2007-06-21
也想知道.