你下面傳入參數是..字元
你因該要傳..數值
'100'
改成100
我剛剛google一下 發現bigdecimal是類別
你要產生一個物件
EX:BigDecimal b=new BigDecimal("100");
之後再將b變數傳入函數參數中
bigdecimal連結
感謝大大~~
如果您要使用BigDecimal, 請熟讀BigDecimal的文件, 您"看到"的數字和真實紀錄在軟體中的數字可能不同. 另外, BigDecimal是類別, 運算時效能遠低於原始(primitive)數值, 如double和float. 這是我寫的一個展示程式:
$ cat testbigdecimal.java
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.math.MathContext;
class testbigdecimal{
public static void main(String[] args){
double dd = 0.35;
BigDecimal bd1 = new BigDecimal(dd);
BigDecimal bd2 = new BigDecimal(dd, new MathContext(2, RoundingMode.HALF_UP));
System.out.println("dd="+ dd+" vs bd1= " + bd1 + " vs bd2="+bd2);
}
}
編譯:
$ javac testbigdecimal.java
執行:
$ java testbigdecimal
dd=0.35 vs bd1= 0.34999999999999997779553950749686919152736663818359375 vs bd2=0.35
一定要用MathContext, 而進位(RoundingMode)有七種:
因為複雜的需求產生這些複雜的操作,您也可以按需求繼承BigDecimal將MathContext和RoundingoMode封裝來簡化或延伸這些. 一般的公司行號primitive應該夠用了.