我想用Java寫的,但我得到了一些錯誤,我不知道怎麼寫:BigDecimal的數學運算
C = A - (A*B)/100
我的價值觀的所有定義爲BigDecimal對象。
我想是這樣的,但是不工作:
C = A.subtract(A.multiply(B).divide(100));
..我得到一個警告,更多的參數添加到鴻溝的方法。我不知道如何正確書寫。我究竟做錯了什麼?在此先感謝
我想用Java寫的,但我得到了一些錯誤,我不知道怎麼寫:BigDecimal的數學運算
C = A - (A*B)/100
我的價值觀的所有定義爲BigDecimal對象。
我想是這樣的,但是不工作:
C = A.subtract(A.multiply(B).divide(100));
..我得到一個警告,更多的參數添加到鴻溝的方法。我不知道如何正確書寫。我究竟做錯了什麼?在此先感謝
BigDecimal
沒有divide(int)
方法,但是這是你要求它與.divide(100)
做什麼,因爲100
是int
文字。如果您參考the documentation,則所有的divide
方法都接受BigDecimal
實例。
可以使用divide(BigDecimal)
代替,通過使用BigDecimal.valueOf
:
C = A.subtract(A.multiply(B).divide(BigDecimal.valueOf(100)));
(它接受一個long
[或double
],但int
可以提升爲long
。)
可替換地,對於某些值,您可以使用String
構造函數代替:
C = A.subtract(A.multiply(B).divide(new BigDecimal("100")));
...特別是如果您正在處理可能會在double
中丟失精度的浮點值。 100
對valueOf
罰款。
c = a.subtract(a.multiply(b).divide(BigDecimal.valueOf(100.0)));
相關[javadoc網頁](https://docs.oracle.com/javase/8/docs/api/index.html?java/math/BigDecimal.html) – Paul
您收到警告「The method divide( BigDecimal)類型BigDecimal不適用於參數(int)「。不是你應該添加更多的參數。 –
[整數除以bigdecimal]的可能重複(http://stackoverflow.com/questions/7819553/division-of-bigdecimal-by-integer) –