Java double 转 int

2024年10月24日 | 阅读 4 分钟

转换数据类型在编程中是一项常见的任务,尤其是在处理数值时。在 Java 中,将 double 转换为 int 可能出于多种原因的需要,例如当您需要执行整数算术或处理需要整数输入的 API 时。在本节中,我们将探讨在 Java 中将 double 转换为 int 的不同方法,并附带每个方法的示例和注意事项。

Java Convert double to int

1. 使用类型转换运算符

Java 中的类型转换通过类型转换运算符 (datatype) 进行。

当将 double 转换为 int 时,double 的小数部分将被截断,只保留整数部分。

在这里,我们将学习如何将 double 原始类型转换为 int,以及将 Double 对象转换为 int。

Java double 转 int 示例:类型转换

让我们来看一个在 Java 中将 double 转换为 int 的简单代码。

DoubleToIntExample1.java

立即测试

输出

10

解释

提供的 Java 代码演示了如何将 double 值转换为 int。它首先初始化一个名为 d 的 double 变量,其值为 10.5,并使用类型转换 (int) 将其转换为 int。变量 i 被赋值为结果的整数值,该值随后被报告到控制台。由于转换过程中小数部分 .5 被截断,因此结果将是 10。

2. 使用 Double.intValue() 方法

Java 中的 Double 类提供了一个名为 intValue() 的方法,该方法返回 double 的整数值。此方法等效于将 double 值转换为 int。

让我们来看一个在 Java 中将 Double 转换为 int 的简单代码。

DoubleToIntExample2.java

立即测试

输出

10

解释

给出的 Java 代码创建一个名为 d 的 Double 对象,其初始值为 10.5,并使用 intValue() 方法获取 Double 对象的整数部分。然后将获得的整数值打印到控制台。因此,输出将是 10,这表示在 Double 到 int 转换过程中小数部分的截断。此代码演示了如何使用 Double 类的 intValue() 函数将 Double 对象转换为 int。

3. 使用 Math.floor()、Math.ceil() 或 Math.round()

Java 的 Math 类提供了将 double 四舍五入到最近整数或朝向正负无穷大的方法。Math.floor()、Math.ceil() 和 Math.round() 是其中的一些函数。

DoubleConversionExample.java

输出

Original double value: 10.75
Floor value: 10
Ceil value: 11
Round value: 11

解释

提供的 Java 代码初始化一个名为 doubleValue 的 double 变量,其值为 10.75。然后,它使用三种不同的方法将此 double 值转换为 int:Math.floor()、Math.ceil() 和 Math.round()。每种方法都以特定方式将 doubleValue 四舍五入到最接近的整数。生成的整数值分别存储在 intValueFloor、intValueCeil 和 intValueRound 中。然后将这些转换后的整数值打印到控制台。输出演示了每种方法的不同舍入行为:intValueFloor 保存向下舍入的值 10,intValueCeil 保存向上舍入的值 11,intValueRound 保存四舍五入的值 11。

注意事项

1. 精度损失

由于 double 的小数部分被丢弃,因此在从 double 转换为 int 时可能会发生精度损失。

2. 范围限制

请记住,Java 中的 int 是一个有符号 32 位整数,其范围在 -2^31 到 2^31 - 1 之间。将一个很大的 double 值转换为 int 可能会导致溢出或下溢。

3. 舍入:根据您的需求选择正确的舍入技术。Math.round() 向最接近的整数舍入,Math.ceil() 向正无穷大舍入,Math.floor() 向负无穷大舍入。


下一个主题Java char 转 int