天天看点

String(百分比)转换成BIgDecimal类型

保存投资比例时出现问题,获得的是个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的大小不能满足要求,还请高手解答

继续阅读