微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 方法重载使用float显示“不兼容的类型错误”但不包含double

我试过这个方法重载代码,我得到了错误

no suitable method found for add(double,double)

代码

class Adder {
    static float add(float a,float b) {
        return a + b;
    }

    static int add(int a,int b) {
        return a + b;
    }
}

class TestOverloading1 {
    public static void main(String[] args){
        System.out.println(Adder.add(11.5,11.5));
        System.out.println(Adder.add(27,21));
    }
}

在写作时,11.5f在params中,这很有效.

我从herehere了解浮动和双重之间的差异.

那么,为什么Java认将参数作为double数据类型?这种偏见背后的双精度更高吗?

我知道它认需要加倍.但是,我想知道这背后的原因是什么?

解决方法

没有任何后缀的浮点文字(例如11.5)的类型是double类型(类似地,没有任何后缀的整数文字是int类型).

对于接受float参数的方法,double参数是不可接受的(因为从double到float的转换可能会导致数据丢失,因此编译器不会自动执行此类转换).

另一方面,11.5f是float文字,因此您可以将这些文字传递给add(float a,float b)方法.

原文地址:https://www.jb51.cc/java/126760.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐