java - 确定十进制值的最快最有效的方法是 Java 中的整数

标签 java primitive

给定一个名为 sizeValuesizeValue 包含非 0 的 double 变量,确定 sizeValue 包含的最有效方法是什么值是整数吗?

目前我正在使用

大小值 % 1 == 0

还有其他更快的方法吗?

最佳答案

尝试Math.ceil :

private static boolean isInt(double x) {
     return x == Math.ceil(x);
}

编辑

我用以下方法做了一些基准测试:

private static boolean isInt1(double x) {
    return x == (int) x;
}

private static boolean isInt2(double x) {
    return x == Math.ceil(x);
}

private static boolean isInt3(double x) {
    return x % 1 == 0;
} 

isInt1 是其中较快的(在 sunjre 1.6 上)

关于java - 确定十进制值的最快最有效的方法是 Java 中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1575052/

相关文章:

class - 如果参数编译时不是实际类型,则kotlin的javaclass.isPrimitive失败

objective-c - Objective-C 原始数之间的区别

java - SnakeYAML加载无法常规使用的对象

java - 此代码的输出不正确,

java - 在java中更改bufferedImage像素

java - 如何从多行字符串中获取二维数组?

Swift iOS - 类对象类型是否比 "Primitive"类型消耗更多内存?

java - 我有一段代码,即带有 try 和 catch block 的方法。 catch block 捕获异常,我该如何为其编写失败 junit?

java - 使用 Hibernate/JPA 获取没有关系/子对象的对象

java - String 是 Android 或 Java 中的原语还是对象?