如何用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; }
你的代码中有很多types不匹配 ,比如试图把一个int
值放在需要BigDecimal
地方。 您的代码的修正版本:
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; } }
如果我是你,我会设置BigDecimal的规模,以便我不会结束冗长的数字。 下面的BigDecimal初始化中的整数2设置比例。
由于你有很多数据types的不匹配,我已经相应地进行了调整来调整。
class Payment { BigDecimal itemCost=new BigDecimal(BigInteger.ZERO, 2); BigDecimal totalCost=new BigDecimal(BigInteger.ZERO, 2); public BigDecimal calculateCost(int itemQuantity,BigDecimal itemPrice) { BigDecimal itemCost = itemPrice.multiply(new BigDecimal(itemQuantity)); return totalCost.add(itemCost); } }
BigDecimals是Object,而不是基元,因此请确保初始化itemCost
和totalCost
,否则当尝试添加totalCost
或itemCost
,它可以为您提供空itemCost
首先, BigDecimal.multiply()
返回一个BigDecimal
,你试图把它存储在一个int
。
其次,它需要另一个BigDecimal
作为参数,而不是int
。
如果您只是使用BigDecimal
来计算这些计算中涉及的所有variables,则应该可以正常工作。