2017-02-23 138 views
0

我想用Java寫的,但我得到了一些錯誤,我不知道怎麼寫:BigDecimal的數學運算

C = A - (A*B)/100 

我的價值觀的所有定義爲BigDecimal對象。

我想是這樣的,但是不工作:

C = A.subtract(A.multiply(B).divide(100)); 

..我得到一個警告,更多的參數添加到鴻溝的方法。我不知道如何正確書寫。我究竟做錯了什麼?在此先感謝

+1

相關[javadoc網頁](https://docs.oracle.com/javase/8/docs/api/index.html?java/math/BigDecimal.html) – Paul

+1

您收到警告「The method divide( BigDecimal)類型BigDecimal不適用於參數(int)「。不是你應該添加更多的參數。 –

+1

[整數除以bigdecimal]的可能重複(http://stackoverflow.com/questions/7819553/division-of-bigdecimal-by-integer) –

回答

2

BigDecimal沒有divide(int)方法,但是這是你要求它與.divide(100)做什麼,因爲100int文字。如果您參考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中丟失精度的浮點值。 100valueOf罰款。

0
c = a.subtract(a.multiply(b).divide(BigDecimal.valueOf(100.0)));