BigDecimal向int的转换
时间: 2023-11-04 17:01:05 浏览: 121
BigDecimal可以通过调用intValue()方法将其转换为int类型。如果BigDecimal的值超出了int类型的范围,则会抛出ArithmeticException异常。可以使用intValueExact()方法来确保转换不会丢失精度,如果转换会导致精度丢失,则会抛出ArithmeticException异常。例如:
```java
BigDecimal bd = new BigDecimal("12345678901234567890");
int i = bd.intValue(); // 抛出ArithmeticException异常,因为超出了int类型的范围
int j = bd.intValueExact(); // 抛出ArithmeticException异常,因为超出了int类型的范围
```
```java
BigDecimal bd = new BigDecimal("1234");
int i = bd.intValue(); // i = 1234
int j = bd.intValueExact(); // j = 1234
```
相关问题
BigDecimal 转int
BigDecimal 转 int 可以使用 BigDecimal 的 intValue() 方法来实现。这个方法将会截断 BigDecimal 值的小数部分并返回对应的 int 值。以下是示例代码:
import.math.BigDecimal;
public classToIntegerExample {
public static void main(String[] args) {
BigDecimal decimal = new BigDecimal("123456.789");
int intValue = decimal.intValue();
System.out.println("BigDecimal: " + decimal);
System.out.println("Integer: " + intValue);
}
}
在上述代码中,我们创建了一个 BigDecimal 对象 decimal,并将其值设置为 "123456.789"。然后,我们使用 intValue() 方法将 decimal 转换为 int,并将结果赋值给 intValue。最后,我们打印出 decimal 和 intValue 的值。
请注意,如果 BigDecimal 的小数部分存在,intValue() 方法将会截断小数部分而不进行四舍五入。如果需要四舍五入或保留指定精度,请先使用 setScale() 方法进行精度控制,再使用 intValue() 进行转换。
BigDecimal 转 int
BigDecimal 转 int 可以使用 BigDecimal 类的 intValue() 方法。该方法将 BigDecimal 对象转换为 int 类型的值。如果 BigDecimal 对象的值不能转换为 int 类型,将会抛出 ArithmeticException 异常。下面是一个示例代码:
```
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal("123.456");
int intValue = bigDecimal.intValue();
System.out.println(intValue);
}
}
```
以上代码将输出 `123`。如果 BigDecimal 的值不能转换为 int 类型,例如:
```
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal("12345678901234567890");
int intValue = bigDecimal.intValue();
System.out.println(intValue);
}
}
```
以上代码将抛出 ArithmeticException 异常,因为 BigDecimal 的值太大,无法转换为 int 类型。
阅读全文