Подтвердить что ты не робот

Что означают F и D в конце числовых литералов?

Я видел некоторые из этих символов, но я не могу найти с ним ничего странного,

double d = 5D; float f = 3.0F;

Что означают D и F позади 5?

4b9b3361

Ответ 1

означает, что эти числа удваиваются и плавают соответственно. Предположим, что у вас

void foo(int x);
void foo(float x);
void foo(double x);

а затем вы вызываете

foo(5)

компилятор может быть заблокирован. Вот почему вы можете сказать 5, 5f или 5.0, чтобы указать тип.

Ответ 2

D означает двойное

F для float

вы можете прочитать основные примитивные типы java здесь

http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

Я хотел бы указать, что запись

5.1D или 5.1: если вы не укажете букву типа для номера запятой, то по умолчанию она будет двойной

5: без периода, по умолчанию это int

Ответ 3

Они являются спецификаторами формата для float и double literals. Когда вы пишете 1.0, это двусмысленно относительно того, хотите ли вы, чтобы литерал был плавающим или двойным. Написав 1.0f, вы говорите Java, что вы предполагаете, что литерал является float, а при использовании 1.0d указано, что он должен быть двойным. Там также L, который представляет длинный (например, 1L является long 1, а не int 1)

Ответ 4

D означает double, а F обозначает float. Иногда вам нужно будет добавить эти модификаторы, поскольку в этом случае 5 считается целочисленным, а 3.0 - двойным.

Ответ 5

Он определяет тип данных для констант 5 и 3.0.

Ответ 6

Как уже упоминалось, это определения типов, однако вы вряд ли увидите, что я или d упомянуты, поскольку они являются значениями по умолчанию.

float myfloat = 0.5; 

будет ошибкой, так как 0.5 по умолчанию является двойным, и вы не можете отключить автобокс с двойного на float (64 → 32 бита), но

double mydouble = 0.5;

не будет проблем