web-dev-qa-db-ja.com

Javaの整数でBigDecimalを乗算する方法

JavaでBigDecimalを整数でどのように乗算しますか?これを試しましたが、正しくありません。

import Java.math.BigDecimal;
import Java.math.MathContext;

public class Payment {
    int itemCost;
    int totalCost = 0;

    public BigDecimal calculateCost(int itemQuantity,BigDecimal itemPrice){
        itemCost = itemPrice.multiply(itemQuantity);
        totalCost = totalCost + itemCost;
    return totalCost;
   }
50
Adesh

intが必要な場所にBigDecimal値を配置しようとするなど、コードに多くのtype-mismatchesがあります。コードの修正バージョン:

public class Payment
{
    BigDecimal itemCost  = BigDecimal.ZERO;
    BigDecimal totalCost = BigDecimal.ZERO;

    public BigDecimal calculateCost(int itemQuantity, BigDecimal itemPrice)
    {
        itemCost  = itemPrice.multiply(new BigDecimal(itemQuantity));
        totalCost = totalCost.add(itemCost);
        return totalCost;
    }
}
79
Juvanis

まず、BigDecimal.multiply()BigDecimalを返しますが、それをintに保存しようとしています。

第二に、それはtakes別のBigDecimalであり、intではありません。

これらの計算に関係するすべての変数にBigDecimalを使用するだけであれば、うまく機能するはずです。

2
paxdiablo