儲存投資比例時出現問題,獲得的是個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的大小不能滿足要求,還請高手解答