Java 乘以浮点值“从双精度到浮点的可能有损转换”
我有一个问题,我必须把公里转换成英里。我是一个新手程序员,所以请容忍我 以下是我目前的代码:Java 乘以浮点值“从双精度到浮点的可能有损转换”,java,floating-point-conversion,Java,Floating Point Conversion,我有一个问题,我必须把公里转换成英里。我是一个新手程序员,所以请容忍我 以下是我目前的代码: 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.prin
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.621371是双精度文字,因此相乘时km值将提升为双精度。将double乘积存储回m将是一种转换,可能会丢失double到float的数据
要将数据保持为浮点值,请使用浮点文本,末尾带有f:
m=km*0.621371f;
通常情况下,结果的双精度是可以接受的,因此您也可以将m和km的数据类型更改为双精度。值0.621371是双精度文字,因此在相乘时km值将提升为双精度。将double乘积存储回m将是一种转换,可能会丢失double到float的数据
要将数据保持为浮点值,请使用浮点文本,末尾带有f:
m=km*0.621371f;
通常情况下,结果的double就可以了,因此您也可以将m和km的数据类型更改为double。您正在尝试将double设置为浮点变量
若要修复,请更改此行
m=km*0.621371;
到
您正在尝试将double设置为浮点变量
若要修复,请更改此行
m=km*0.621371;
到
您需要将常量变量定义为浮点,因为km被读取为浮点
final float KM_TO_ML = 0.621371F;
m = km * KM_TO_ML;
您需要将常量变量定义为浮点,因为km被读取为浮点
final float KM_TO_ML = 0.621371F;
m = km * KM_TO_ML;
提示:浮点数默认为双精度类型。如果你想在末尾使用f,比如0.621371fI,我猜你的意思是有损转换?你试过用谷歌搜索错误吗?除了从答案中学到的内容外,还要了解格式化和编码约定对于与其他程序员(包括将来阅读代码的程序员)的交流非常重要。类名应以大写字母开头,代码块应正确缩进。提示:浮点数字默认为双精度类型。如果要使用浮点,请在末尾使用f,如0.621371fI,我猜您的意思是有损转换?你试过用谷歌搜索错误吗?除了从答案中学到的内容外,还要了解格式化和编码约定对于与其他程序员(包括将来阅读代码的程序员)的交流非常重要。类名应该以大写字母开头,代码块应该适当缩进。考虑使用魔术数字,这是一个糟糕的编程实践。只看这个代码,你就不能知道0.621371是什么意思?它被认为是一个糟糕的编程实践,使用魔术数字。仅通过查看此代码,您无法了解0.621371的含义?