我试图通过显示 1.2 来美化程序,如果它是 1.2,如果它是 1,则显示 1 问题是我将数字作为 double 存储到数组列表中。如何检查数字是 double 型还是整数型?
最佳答案
好吧,你可以使用:
if (x == Math.floor(x))
甚至:
if (x == (long) x) // Performs truncation in the conversion
如果条件为真,即执行 if
语句的主体,则该值为整数。否则,它不是。
请注意,这会将 1.00000000001 视为仍然是 double 值 - 如果这些值已经计算(因此可能只是“非常接近”整数值),您可能需要添加一些公差.另请注意,对于非常大的整数,这将开始失败,因为无论如何它们都不能在 double
中准确表示 - 如果您是,您可能需要考虑使用 BigDecimal
处理范围非常广泛。
编辑:有更好的方法来解决这个问题 - 使用 DecimalFormat
你应该能够让它只可选产生小数点。例如:
import java.text.*;
public class Test
{
public static void main(String[] args)
{
DecimalFormat df = new DecimalFormat("0.###");
double[] values = { 1.0, 3.5, 123.4567, 10.0 };
for (double value : values)
{
System.out.println(df.format(value));
}
}
}
输出:
1
3.5
123.457
10
关于java - 检查一个数字是 double 还是 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297975/