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).
Литерал с плавающей точкой имеет тип float, если к нему добавлена буква ASCII F или f; в противном случае его тип является двойным, и к нему можно добавить суффикс ASCII-буквы D или d.
Дело в том, что десятичные числа по умолчанию удваиваются. И так как double не вписывается в float, вы должны прямо сказать, что вы намеренно определяете float. Итак, идите с:
float b = 3.6f;
Ответ 4
В JAVA значения, такие как:
8.5
3,9
(и т.д.)
Предполагается, что double, а не float.
Вы также можете выполнить бросок, чтобы решить проблему: