将浮点值相乘"possible lossy conversion from double to float"



我有一个问题,我必须将公里转换为英里。我是一个新手程序员,请耐心等待。

到目前为止,这是我的代码:

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.621371double的文字,因此km的值在相乘时会提升为double。将double产品存储回m将是可能丢失数据(doublefloat)的转换。

要将数据保持为float,请使用float文字,末尾为f

m=km*0.621371f;

通常情况下,结果的double会很好,所以您也可以将mkm的数据类型更改为double

您需要将常量变量定义为float,因为km读取为float。

final float KM_TO_ML = 0.621371F;
m = km * KM_TO_ML;

相关内容

最新更新