Является ли научная нотация интерпретируемой как int или float?

Если я кодирую число в моем коде, используя научную нотацию (например, 1e9), каков будет тип этого числа (int, long, float, double..)?

Когда значащий или экспоненты являются числами с плавающей запятой, он не может быть целым числом, но что в этом случае?

Ответ 1

e делает его литералом с плавающей запятой. Из JLS (§3.10.2. Литералы с плавающей запятой):

Литерал с плавающей запятой имеет тип float если он суффикс с буквой ASCII F или f; в противном случае его тип double и он может быть дополнительно суффикс с буквой ASCII D или d (§4.2.3).

Следовательно, 1e9 типа double, as равно 1e9d. С другой стороны, 1e9f имеет тип float.

Ответ 2

Обычно они имеют тип double. Если вы положите f (из F) за ним, это поплавок.

double d = 1e9; 
float f = 1e9f;

Ответ 4

Это будет "double", если вы не используете "f" или "F", тогда он будет плавать буквально.

Ответ 5

Лучше использовать Double. Поскольку он имеет десятичную плавающую точку, это компьютерная арифметическая система, тесно связанная с научной нотацией. например: 0.000 000 007 51 в научной нотации 7.51 × 10-9. когда вы используете его как int, 7.51 будет 7, а когда вы будете использовать int, оно будет 7.51.