gpt4 book ai didi

java - 如何在 Java 中将整数转换为 bigdecimal

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:26 24 4
gpt4 key购买 nike

我想创建一个计算整数和大数相乘的方法。我在 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;
}

我该如何解决这个问题?

最佳答案

要将整数(或 byte/short/float/double)与 BigInteger(或 BigDecimal)相乘,您必须先将 native 数字转换为 BigInteger/BigDecimal。

// int parameter can be int or Integer
public 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.

Note: valueOf is not the same as new, and for different reasons on BigDecimal and BigInteger. In both cases, I recommend valueOf over new.


我看到您添加了代码,很好。它不起作用,因为 Integer 与 BigDecimal 混合使用,而且 * 不适用于 BigDecimal。如果将它与我的代码进行比较,修复应该是显而易见的:

public BigDecimal methCal ( int quantite, BigDecimal prixUnit ) {
return BigDecimal.valueOf( quantite ).multiply( prixUnit );
}

关于java - 如何在 Java 中将整数转换为 bigdecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com