无法从双精度转换为浮点错误

问题描述 投票:0回答:1

我正在编写一个简单的程序,将磅转换为公斤,但我有点困惑

import java.util.Scanner;

public class FiveTenOne {
    public static void main(String[] args)
    {
        Scanner keyboard =  new Scanner(System.in); //Creates Scanner Object

        System.out.print("Enter your weight in pounds: ");

        float pounds = keyboard.nextFloat();

        float kilos = pounds / 2.2;

        System.out.print("Your value in kilos is: " + kilos);

        keyboard.close();
    }
}

这是我编写的代码,所有变量都已设置为浮点数,但它告诉我它无法从双精度转换。在“磅/2.2;”

但是,当我像下面的代码“(float)(磅/ 2.2)”那样编写它时,就不会再出现错误

import java.util.Scanner;

public class FiveTenOne {
    public static void main(String[] args)
    {
        Scanner keyboard =  new Scanner(System.in); //Creates Scanner Object

        System.out.print("Enter your weight in pounds: ");

        float pounds = keyboard.nextFloat();

        float kilos = (float) (pounds / 2.2);

        System.out.print("Your value in kilos is: " + kilos);

        keyboard.close();
    }
}

有人可以向我解释为什么第一个代码不将其视为浮点数吗?

还是IDE问题?

我尝试了两种方法,并且知道第二种方法工作正常,但我想了解为什么第一种方法不起作用

java floating-point double
1个回答
0
投票

Double
Float
是不同的数据类型,请参见例如Java:双精度与浮点。错误消息表明除法
pounds / 2.2
返回一个
Double
值。该值必须显式转换为
Float
,就像您在第二个代码示例中所做的那样。

© www.soinside.com 2019 - 2024. All rights reserved.