Что такое float в Java?
Я написал этот код:
float b = 3.6;
и я получаю следующее:
Error:Unresolved compilation problem:
Type mismatch: cannot convert from double to float
Почему? Каково определение float
?
Ответы
Ответ 1
В Java, когда вы вводите десятичное число как 3.6
, его интерпретируется как double
. double
- это 64-битная точность IEEE 754 с плавающей запятой, а float
- 32-битная точность IEEE 754 с плавающей запятой. Поскольку float
менее точен, чем a double
, преобразование не может выполняться неявно.
Если вы хотите создать float, вы должны закончить свой номер с помощью f
(т.е.: 3.6f
).
Подробнее см. в определение примитивных типов данных учебника Java.
Ответ 2
Сделай это
float b= 3.6f;
Литерал с плавающей точкой имеет тип float, если к нему добавлена буква ASCII F или f; в противном случае его тип является двойным, и к нему можно добавить суффикс ASCII-буквы D или d.
Ответ 3
Дело в том, что десятичные числа по умолчанию удваиваются. И так как double не вписывается в float, вы должны прямо сказать, что вы намеренно определяете float. Итак, идите с:
float b = 3.6f;
Ответ 4
В JAVA значения, такие как:
Предполагается, что double, а не float.
Вы также можете выполнить бросок, чтобы решить проблему:
float b = (float) 3.5
;
Другое решение:
float b = 3.5f
;