Siv*_*iva 1 java int android bigdecimal
我有一个值,就像0.0004我存储Integer它时转换成Exponential格式,所以我习惯Bigdecimal将它转换为正常值,如下所示
Bigdecimal x=BigDecimal.valueOf(0.0004)
Run Code Online (Sandbox Code Playgroud)
现在我想成倍增加,x*100但我得到低于错误.
Error: The operator * is undefined for the argument type(s) BigDecimal, int
Run Code Online (Sandbox Code Playgroud)
因为这个错误,如果我再次使用没有bigdecimal,它将转换为EXponential.
任何人都可以建议我繁殖的方式Bigdecimal and int.
谷歌搜索了很多但找不到正确的解决方案.
谢谢你的时间
你可以BigDecimal.multiply用来乘以你的BigDecimal.
但是,int值0.0004 * 100将是0,这可能不是你想要的.
最后,您可以BigDecimal通过使用NumberFormat实例和格式化来改变用小数位表示的方式Number.
这是一个例子:
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));
Run Code Online (Sandbox Code Playgroud)
产量
y is 0.04000 z is 0
y (2 fraction digits) is 0.04
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12560 次 |
| 最近记录: |