4 ответов:
в Java, когда вы вводите десятичное число как
3.6, его интерпретируют какdouble.doubleявляется 64-разрядной точностью IEEE 754 с плавающей запятой, в то время какfloat32-разрядная точность IEEE 754 с плавающей точкой. Какfloatменее точно, чем adoubleпреобразование не может быть выполнено неявно.если вы хотите создать поплавок, вы должны закончить свой номер с
f(например:3.6f).для получения дополнительных объяснений см. примитивные типы данных определение учебном руководстве по Java.
сделать
float b= 3.6f;литерал с плавающей точкой типа float, если она является суффиксом букву ASCII F или F; иначе его тип double, и это необязательно может быть суффиксом в ASCII буква D или D.
дело в том, что десятичные числа дефолтов в два раза. И поскольку double не вписывается в float, вы должны четко сказать, что вы намеренно определяете float. Так что идите с:
float b = 3.6f;
в JAVA, такие значения, как:
- 8.5
- 3.9
- (и так далее..)
считается двойной, а не float.
вы также можете выполнить приведение для решения проблемы:
float b = (float) 3.5;другое решение:
float b = 3.5f;
Comments