У меня есть эта проблема, в которой мне нужно преобразовать километры в мили. Я начинающий программист, так что медведь со мной.
Вот мой код:
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.
Вы пытаетесь установить double
переменную float
Чтобы исправить, измените эту строку
m=km*0.621371;
в
m=km*0.621371f;
Вы должны определить постоянную переменную как float, так как km читается как float.
final float KM_TO_ML = 0.621371F;
m = km * KM_TO_ML;
Значение 0.621371
является double
литералом, поэтому при умножении значения km
double
. Сохранение double
продукта обратно в m
будет преобразованием, которое может потерять данные (double
to float
).
Чтобы сохранить данные в виде float
, используйте литерал с float
, а f
на конце:
m=km*0.621371f;
Обычно double
результат для результатов был бы прекрасен, поэтому вы могли бы просто изменить типы данных m
и km
в double
.
double
.