相关疑难解决方法(0)

由三元运算符产生的意外类型

我正在尝试编写一个获取a的方法double,验证数字是否在点之后有一些东西,如果它确实 - 返回一个double,如果没有 - 返回一个int.

public class Solution {
    public static void main(String[] args) {
        double d = 3.000000000;
        System.out.println(convert1(d));
        System.out.println(convert2(d));
    }

    static Object convert1(double d) {
        if(d % 1 == 0)
            return (int) d;
        else
            return d;
    }

    static Object convert2(double d) {
        return ((d%1) == 0) ? ((int) (d)) : d;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

3
3.0
Run Code Online (Sandbox Code Playgroud)

所以,我想要的一切都发生在方法中convert1(),但不会发生在方法中convert2().看来这些方法必须做同样的工作.但我做错了什么?

java ternary-operator

19
推荐指数
3
解决办法
3057
查看次数

标签 统计

java ×1

ternary-operator ×1