Я написал такой код:
float b = 3.6;
и я получаю это:
Ошибка: нерешенная проблема компиляции: Несоответствие типов: невозможно преобразовать из double в float
Зачем? Что такое определение float
?
Я написал такой код:
float b = 3.6;
и я получаю это:
Ошибка: нерешенная проблема компиляции: Несоответствие типов: невозможно преобразовать из double в float
Зачем? Что такое определение float
?
f
к литералу»), в то время как другой вопрос спрашивает, почему вы должны добавить f
. Хотя они связаны, это не дубликат.
Ответы:
В Java, когда вы вводите десятичное число как 3.6
, оно интерпретируется как double
. double
представляет собой 64-битную точность с плавающей запятой IEEE 754 float
и 32-битную точность с плавающей запятой IEEE 754. Поскольку a float
менее точен, чем a double
, преобразование не может быть выполнено неявно.
Если вы хотите создать число с плавающей запятой, вы должны закончить свой номер f
(например:) 3.6f
.
Для получения дополнительных объяснений см. Определение примитивных типов данных в руководстве по Java .
Сделай это
float b= 3.6f;
Литерал с плавающей точкой имеет тип float, если он имеет суффикс ASCII-буквы F или f; в противном случае его тип двойной, и он может быть дополнен буквой ASCII D или d