Java中如何判断双数是否以.0结尾

Joh*_*hen 0 java

我有一些双数,例如 :3.0 3.1 4.0 5.2等。

我可以判断数字是否以.0喜欢3.0和结尾4.0吗?

有没有最好的方法呢?

PS:我将它们转换为 String 类型,但是我认为这不是最好的方法。

    double i = 3.0;
    String d = i + "";
    return d.endsWith(".0");
Run Code Online (Sandbox Code Playgroud)

Sud*_*hul 6

你可以做这样的事情。

double d = 10.09;
System.out.println(d == Math.floor(d));
// True if it ends with 0, else false

// If you want to return the boolean result
return d == Math.floor(d);
Run Code Online (Sandbox Code Playgroud)

注意:它会一直工作到值为double d = 10.000000000000001;。另一个0十进制最终会给出错误的结果(这都归功于浮点表示不准确)。