当前位置: 代码迷 >> J2EE >> 问个BigDecimal转String 的有关问题
  详细解决方案

问个BigDecimal转String 的有关问题

热度:24   发布时间:2016-04-17 23:01:23.0
问个BigDecimal转String 的问题
System.out.println(new BigDecimal(0.18).toString());
打印出的结果竟然是“0.179999999999999993338661852249060757458209991455078125”
有什么办法把BigDecimal转成String ?
网上有BigDeciaml保留2位小数四舍五入的办法,但这个不符合我的业务需求。
------解决思路----------------------
String str = Float.toString(new BigDecimal(0.18).floatValue() )
1.将此 BigDecimal 转换为 float。
2.返回 float 参数的字符串表示形式,Float类的一个静态方法static String toString(float f) 
------解决思路----------------------
你用String初始化Decimal,这样是精确的小数。

System.out.println(new BigDecimal(“0.18”);
------解决思路----------------------
这么试试看满足要求么:

System.out.println(bd.doubleValue());

------解决思路----------------------
根本原因是new BigDecimal(0.18) 这个0.18是double型,不能精确表示0.18这个小数,用new BigDecimal("0.18")即可
------解决思路----------------------
引用:
这么试试看满足要求么:

System.out.println(bd.doubleValue());

漏了点,这个bd就是BigDecimal.

BigDecimal bd = new BigDecimal(0.18);
// System.out.println(bd.toString());
System.out.println(bd.doubleValue()+"");
  相关解决方案