bigdecimal乘int 取两位小数
时间: 2024-01-01 17:03:24 浏览: 47
可以使用BigDecimal类的setScale方法来设置保留小数位数,具体实现如下:
```java
import java.math.BigDecimal;
public class Example {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal("3.14");
int i1 = 2;
BigDecimal result = bd1.multiply(new BigDecimal(i1)).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(result); // 输出 6.28
}
}
```
在上面的代码中,我们将一个字符串类型的数字 "3.14" 构造成了一个 BigDecimal 对象 bd1,将一个整型数字 2 存储在 int 类型的变量 i1 中。然后,我们使用 bd1 调用 multiply 方法,将其乘以 i1 构造成的 BigDecimal 对象,并使用 setScale 方法设置保留小数位数为 2,并使用 BigDecimal.ROUND_HALF_UP 来指定四舍五入的方式。最后,我们通过 System.out.println 输出 result 的值,即 6.28。
相关问题
bigdecimal转integer保留两位小数
要将 BigDecimal 转换为保留两位小数的 Integer,需要执行以下步骤:
1. 将 BigDecimal 乘以 100,将小数点向右移动两位,得到一个整数值;
2. 调用 intValue() 方法将 BigDecimal 转换为 int 类型;
3. 将 int 类型的值除以 100,得到保留两位小数的整数。
以下是一个示例代码:
```
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
BigDecimal decimal = new BigDecimal("123.456");
int intValue = decimal.multiply(new BigDecimal("100")).intValue();
int result = intValue / 100;
System.out.println(result); // 输出 123
}
}
```
注意:在进行除法操作时,由于 int 类型的除法是向下取整的,因此可能会出现精度丢失的情况。如果需要更高的精度,可以考虑使用 BigDecimal 进行除法操作。
bigdecimal分转元 保留两位小数
您可以使用 BigDecimal 类的 divide 方法将分转换为元,并使用 setScale 方法设置保留两位小数。以下是示例代码:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
int fen = 12345; // 分
BigDecimal yuan = new BigDecimal(fen).divide(new BigDecimal(100));
yuan = yuan.setScale(2, BigDecimal.ROUND_HALF_UP); // 保留两位小数,四舍五入
System.out.println("转换结果:" + yuan);
}
}
```
这段代码将输出转换结果,保留两位小数并四舍五入的元金额。请注意,传入 divide 方法的除数应为 BigDecimal 类型的对象,并使用 new BigDecimal() 构造函数将分转换为 BigDecimal 对象。