保存投资比例时出现问题,获得的是个String类型的,比如:54.3300%,但数据库中是BigDecimal类型。直接进行转换
BigDecimal.valueOf(Long.valueOf(s))会抛异常:”Exception in thread "main java.lang.NumberFormatException: For input string: “。也就是先转换成Long的做法不行,最后发现先转换成Double就没问题。
String s="42.3100%";
s=s.substring(0, s.length()-1); //去掉“%”
System.out.println("s="+s);
double d=Double.valueOf(s);
BigDecimal b=BigDecimal.valueOf(d);
System.out.println("b="+b);
输出结果是:
s=42.310
b=42.31
但现在还是不知道为什么不能直接转换成Long,难道Long的大小不能满足要求,还请高手解答
本文解决从String类型的投资比例如54.3300%转换为BigDecimal类型的问题,介绍了为何不能直接转换为Long类型的原因,并提供了一种通过先转换为Double再转换为BigDecimal的有效解决方案。
2945

被折叠的 条评论
为什么被折叠?



