当前位置: 首页 > 知识库问答 >
问题:

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

白腾
2023-03-14

我尝试了重载代码的方法,但我得到了错误

找不到合适的添加方法(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));
    }
}

共有1个答案

孟浩然
2023-03-14

根据定义,没有任何后缀的浮点文字(例如11.5)属于double类型(类似地,没有任何后缀的整数文字属于int类型)。

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

另一方面,11.5Ffloat文本,因此可以将此类文本传递给add(float a,float b)方法。

 类似资料:
  • 和是的一部分,如下所示:

  • 我一直在运行此代码并不断收到错误,不知道为什么。双倍漂浮?继续收到消息“错误:不兼容的类型:可能的有损转换从双精度到浮点型。转换如何转换是否有任何问题,因此没有错误 这是较大代码的一部分。

  • 我一直试图编译这个简单的警报对话框,以便在用户单击提交按钮时显示。编译代码时会弹出一条错误消息: 错误:(33,74)错误:不兼容的类型: 这个类叫做Login_Activity,它扩展了BaseActivity,它扩展了Activity。

  • 问题内容: 人们总是被告知永远不要用或类型代表金钱,这一次我向您提出一个问题:为什么? 我敢肯定有一个很好的理由,我根本不知道这是什么。 问题答案: 因为浮点数和双精度数不能准确表示我们用于赚钱的基数10的倍数。这个问题不仅仅针对Java,而且还针对任何使用base 2浮点类型的编程语言。 在基数10中,您可以将10.25编写为1025 * 10 -2(整数乘以10的幂)。IEEE-754浮点数是

  • 嗨,我正在制作一个程序,该程序应该采用字母等级并将其转换为 GPA 值。程序的第一部分取了一个百分比并将其转换为字母等级,现在我正在尝试将转换后的字母等级转换为 int 值。我们只允许使用开关盒。但是,在执行此操作时,我发现一个不兼容的类型错误:java.lang.String required: int。不确定我需要更改什么,有什么帮助吗? 谢谢。

  • 我能得到帮助吗?我是Java的新手,不知道如何用上一个LWL修复这个错误。 不兼容类型:字符串不能转换为double