天天看點

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的大小不能滿足要求,還請高手解答

繼續閱讀