java – 方法重载使用float显示“不兼容的类型错误”但不包含dou
发布时间:2020-12-15 00:06:16 所属栏目:Java 来源:网络整理
导读:我试过这个方法重载代码,我得到了错误 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 stat
我试过这个方法重载代码,我得到了错误
代码: 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中,这很有效. 我从here和here了解浮动和双重之间的差异. 那么,为什么Java默认将参数作为double数据类型?这种偏见背后的双精度更高吗? 我知道它默认需要加倍.但是,我想知道这背后的原因是什么? 解决方法
没有任何后缀的浮点文字(例如11.5)的类型是double类型(类似地,没有任何后缀的整数文字是int类型).
对于接受float参数的方法,double参数是不可接受的(因为从double到float的转换可能会导致数据丢失,因此编译器不会自动执行此类转换). 另一方面,11.5f是float文字,因此您可以将这些文字传递给add(float a,float b)方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |