我有一个问题,我必须将公里转换为英里。我是一个新手程序员,请耐心等待。
到目前为止,这是我的代码:
import java.util.Scanner;
public class problem1 {
public static void main (String args[]) {
float m;
float km;
Scanner input=new Scanner(System.in);
System.out.print("Please enter a distance in kilometers:");
km=input.nextFloat();
m=km*0.621371;
System.out.println("This is equal to: "+m);
}
}
它给了我一个错误:
不兼容类型:从double到float的可能有损转换
您正试图将double
设置为float
变量
要修复,请更改此行
m=km*0.621371;
至
m=km*0.621371f;
值0.621371
是double
的文字,因此km
的值在相乘时会提升为double
。将double
产品存储回m
将是可能丢失数据(double
到float
)的转换。
要将数据保持为float
,请使用float
文字,末尾为f
:
m=km*0.621371f;
通常情况下,结果的double
会很好,所以您也可以将m
和km
的数据类型更改为double
。
您需要将常量变量定义为float,因为km读取为float。
final float KM_TO_ML = 0.621371F;
m = km * KM_TO_ML;