我正在编写一个简单的程序,将磅转换为公斤,但我有点困惑
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问题?
我尝试了两种方法,并且知道第二种方法工作正常,但我想了解为什么第一种方法不起作用
Double
和 Float
是不同的数据类型,请参见例如Java:双精度与浮点。错误消息表明除法 pounds / 2.2
返回一个 Double
值。该值必须显式转换为 Float
,就像您在第二个代码示例中所做的那样。