我有这个问题,我必须将千米转换成里程。我是新手程序员,所以请耐心等待。
到目前为止,这是我的代码:
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);
}
}
它给我一个错误说:
Incompatible types:possible lossy conversion from double to float.
答案 0 :(得分:2)
您正尝试将double
设置为float
变量
要修复,请更改此行
m=km*0.621371;
到
m=km*0.621371f;
答案 1 :(得分:1)
值0.621371
是double
字面值,因此km
值在乘以时会提升为double
。将double
产品存储回m
将是一种可能会丢失数据的转化(double
到float
)。
要将数据保持为float
,请使用float
字面值,最后加f
:
m=km*0.621371f;
通常结果的double
就可以了,所以您也可以将m
和km
的数据类型更改为double
。
答案 2 :(得分:1)
您需要将常量变量定义为float,因为km被读取为float。
final float KM_TO_ML = 0.621371F;
m = km * KM_TO_ML;