如何在java中将整数转换为bigdecimal
我想创建一种计算整数和大十进制乘法的方法。我在Google和论坛上搜索没有找到任何内容。
import java.math.BigDecimal;private Integer quantite;
private BigDecimal prixUnit;
public Integer getQuantite() {
return quantite;
}
public void setQuantite(Integer quantite) {
this.quantite = quantite;
}
public BigDecimal getPrixUnit() {
return prixUnit;
}
public void setPrixUnit(BigDecimal prixUnit) {
this.prixUnit = prixUnit;
}
public BigDecimal methCal(BigDecimal quantite, BigDecimal prixUnit){
this.prixUnit=prixUnit;
BigDecimal j = new BigDecimal(quantite);
this.j = quantite;
return quantite*prixUnit ;
}
有人能帮我吗?
回答:
要将整数(或字节/短/浮点数/双精度数)与BigInteger(或BigDecimal)相乘,必须先将本机数字转换为BigInteger /
BigDecimal。
// int parameter can be int or Integerpublic static BigInteger multiply ( int a, BigInteger b ) {
return BigInteger.valueOf( a ).multiply( b );
}
// BigInteger <> BigDecimal
public static BigDecimal multiply ( int a, BigDecimal b ) {
return BigDecimal.valueOf( a ).multiply( b );
}
// same for add, subtract, divide, mod etc.
注意:
valueOf
是不一样的new
,而且在不同的原因的BigDecimal和BigInteger的。在这两种情况下,我建议valueOf
过new
。
我看到您添加了代码,很好。它不起作用,因为Integer与BigDecimal混合使用,*
也不适用于BigDecimal。如果将其与我的代码进行比较,则修复应该很明显:
public BigDecimal methCal ( int quantite, BigDecimal prixUnit ) { return BigDecimal.valueOf( quantite ).multiply( prixUnit );
}
以上是 如何在java中将整数转换为bigdecimal 的全部内容, 来源链接: utcz.com/qa/421431.html