Code Bye

有什么办法把BigDecimal转成String

System.out.println(new BigDecimal(0.18).toString());

打印出的结果是“0.179999999999999993338661852249060757458209991455078125”

有什么办法把BigDecimal转成String ?

网上有BigDeciaml保留2位小数四舍五入的办法,但不符合本人的业务需求。

解决方案:10分
String str = Float.toString(new BigDecimal(0.18).floatValue() )

1.将此 BigDecimal 转换为 float。

2.返回 float 参数的字符串表示形式,Float类的一个静态方法static String toString(float f) 

解决方案:10分
你用String初始化Decimal,这样是精确的小数。

System.out.println(new BigDecimal(“0.18”);

解决方案:5分
System.out.println(bd.doubleValue());
解决方案:10分
根本原因是new BigDecimal(0.18) 这个0.18是double型,不能精确表示0.18这个小数,用new BigDecimal(“0.18”)即可
解决方案:5分

漏了点,这个bd就是BigDecimal.

BigDecimal bd = new BigDecimal(0.18);
//		System.out.println(bd.toString());
System.out.println(bd.doubleValue()+"");

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明有什么办法把BigDecimal转成String