Я написал такой код:
float b = 3.6;
и я получаю это:
Ошибка: нерешенная проблема компиляции: Несоответствие типов: невозможно преобразовать из double в float
Зачем? Что такое определение float
?
java
floating-point
t0mkaka
источник
источник
f
к литералу»), в то время как другой вопрос спрашивает, почему вы должны добавитьf
. Хотя они связаны, это не дубликат.Ответы:
В Java, когда вы вводите десятичное число как
3.6
, оно интерпретируется какdouble
.double
представляет собой 64-битную точность с плавающей запятой IEEE 754float
и 32-битную точность с плавающей запятой IEEE 754. Поскольку afloat
менее точен, чем adouble
, преобразование не может быть выполнено неявно.Если вы хотите создать число с плавающей запятой, вы должны закончить свой номер
f
(например:)3.6f
.Для получения дополнительных объяснений см. Определение примитивных типов данных в руководстве по Java .
источник
Сделай это
источник
Дело в том, что десятичные числа по умолчанию удваиваются. И поскольку double не подходит для float, вы должны явно указать, что вы намеренно определяете float. Итак, идите с:
источник
В JAVA такие значения, как:
Считается двойным, а не плавающим .
Вы также можете выполнить приведение, чтобы решить проблему:
float b = (float) 3.5
;Другое решение:
float b = 3.5f
;источник