为什么我会得到

错误:不兼容的类型:Double不能转换为Float

用下面的方法?

bmi.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        Float weightKg,heightmeter1,heightmeter2,TotalHeight,BMI;

        String sweight = kg.getText().toString();
        weightKg = Float.parseFloat(sweight);

        String sfeet = feet.getText().toString();
        float heightFeet = Float.parseFloat(sfeet);
        heightmeter1 =  heightFeet *0.3048;

        String sinch = inch.getText().toString();
        float heightInch = Float.parseFloat(sinch);
        heightmeter2 =heightInch*0.0254;

        TotalHeight = heightmeter1+heightmeter2;

        BMI = weightKg + (TotalHeight*TotalHeight);

       displaybmi.setText(" Your BMI Is = "+BMI+"  ");

    }
});

Android Studio在构建输出中向我展示

C:\Users\USER\Desktop\Social_Media\app\src\main\java\com\example\social_media\MainActivity.java:73: 错误:不兼容的类型:Double不能转换为Float
        heightmeter1 =  heightFeet *0.3048;
                                   ^
C:\Users\USER\Desktop\Social_Media\app\src\main\java\com\example\social_media\MainActivity.java:77: 错误:不兼容的类型:Double不能转换为Float
        heightmeter2 =heightInch*0.0254;
                                ^

推荐答案

在Java中,没有类型后缀的浮点文本总是被解释为double.

您需要按如下方式添加f后缀:

heightmeter1 = heightFeet * 0.3048f;
...
heightmeter2 = heightInch * 0.0254f;

Java相关问答推荐

为什么我的画布没有显示在PFA应用程序中?

如何转换Tue Feb 27 2024 16:35:30 GMT +0800 String至ZonedDateTime类型""

使用标记时,场景大纲不在多个线程上运行

有没有一种方法使保持活动设置专用于java.net.http.HttpClient的一个实例

FALSE:它应该在什么时候使用?

呈现文本和四舍五入矩形时出现的JavaFX窗格白色瑕疵

Java:使用Class.cast()将对象转换为原始数组

Helidon 4和Http API

当Volatile关键字真的是必要的时候?

用户填充的数组列表永不结束循环

Jenv-相同的Java版本,但带有前缀

我怎样才能让IntelliJ标记toString()的任何实现?

判断重复的两个二维表算法?

无法在IntStream上应用Collectors.groupingBy

活泼的一次判断成语,结果中等

验证没有';t work on Hibernate Entity';s字段

由于版本不匹配,从Java 8迁移到Java 17和Spring 6 JUnit4失败

由于可为null,无法在kotlin中实现java接口

ControlsFX RangeSlider在方向垂直时滞后

";重复键的值提示唯一约束«;livre_genre_pkey»";例外