Я видел некоторые из этих символов, но я не могу найти с ним ничего странного,
double d = 5D; float f = 3.0F;
Что означают D и F позади 5?
Я видел некоторые из этих символов, но я не могу найти с ним ничего странного,
double d = 5D; float f = 3.0F;
Что означают D и F позади 5?
означает, что эти числа удваиваются и плавают соответственно. Предположим, что у вас
void foo(int x);
void foo(float x);
void foo(double x);
а затем вы вызываете
foo(5)
компилятор может быть заблокирован. Вот почему вы можете сказать 5
, 5f
или 5.0
, чтобы указать тип.
D означает двойное
F для float
вы можете прочитать основные примитивные типы java здесь
http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
Я хотел бы указать, что запись
5.1D или 5.1: если вы не укажете букву типа для номера запятой, то по умолчанию она будет двойной
5: без периода, по умолчанию это int
Они являются спецификаторами формата для float и double literals. Когда вы пишете 1.0
, это двусмысленно относительно того, хотите ли вы, чтобы литерал был плавающим или двойным. Написав 1.0f
, вы говорите Java, что вы предполагаете, что литерал является float, а при использовании 1.0d
указано, что он должен быть двойным. Там также L
, который представляет длинный (например, 1L
является long
1, а не int
1)
D означает double, а F обозначает float. Иногда вам нужно будет добавить эти модификаторы, поскольку в этом случае 5 считается целочисленным, а 3.0 - двойным.
Он определяет тип данных для констант 5 и 3.0.
Как уже упоминалось, это определения типов, однако вы вряд ли увидите, что я или d упомянуты, поскольку они являются значениями по умолчанию.
float myfloat = 0.5;
будет ошибкой, так как 0.5 по умолчанию является двойным, и вы не можете отключить автобокс с двойного на float (64 → 32 бита), но
double mydouble = 0.5;
не будет проблем