将浮点值乘以“可能有损转换从double到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.621371
是double
字面值,因此乘以时km
值将提升为double
。 将double
产品存储回m
将是一个可能丢失数据的转换( float
double
)。
要将数据保持为float
,请使用float
literal,最后使用f
:
m=km*0.621371f;
通常情况下,结果的double
就可以了,因此您也可以将m
和km
的数据类型更改为double
。
您需要将常量变量定义为float,因为km被读取为float。
final float KM_TO_ML = 0.621371F; m = km * KM_TO_ML;