当我将其存储在 Integer
中时,我有一个值,如 0.0004
,它正在转换为 Exponential
格式,所以我使用了 Bigdecimal
将其转换为正常值,如下所示
Bigdecimal x=BigDecimal.valueOf(0.0004)
现在,我尝试乘以 x*100
,但我遇到了以下错误。
Error: The operator * is undefined for the argument type(s) BigDecimal, int
由于这个错误,如果我再次使用它而不使用 bigdecimal,它将转换为 EXponential
。
任何人都可以建议我乘以 Bigdecimal 和 int
的方法。
google 了很多,但找不到正确的解决方案。
谢谢你的时间
您可以使用 BigDecimal.multiply
来乘以您的 BigDecimal
。
但是,0.0004 * 100
的 int 值将是 0
,这可能不是您想要的。
最后,您可以通过使用 NumberFormat
实例并格式化您的 Number
来改变 BigDecimal
以小数位数表示的方式。
这是一个例子:
BigDecimal x= BigDecimal.valueOf(0.0004);
BigDecimal y = x.multiply(new BigDecimal("100"));
int z = y.intValue();
System.out.printf("y is %s\tz is %d%n", y, z);
// edit to truncate fractional digits
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
System.out.printf("y (2 fraction digits) is %s", nf.format(y));
输出
y is 0.04000 z is 0
y (2 fraction digits) is 0.04