двойное объявление типа поля как ноль

В чем существенная разница между следующим объявлением нулевой двойной переменной: 0.0 VS 0d

double d1 = 0.0;
double d2 = 0d;

Я понимаю, что оба варианта лучше, чем просто 0, потому что они более очевидны для читателя кода.

Однако разница 0.0 VS 0d для меня не ясна.


person sergionni    schedule 14.05.2013    source источник
comment
не верю что есть разница   -  person Richard Tingle    schedule 14.05.2013


Ответы (2)


Нет никакой разницы. Взгляните на Спецификация языка Java, раздел 3.10.2

DecimalFloatingPointLiteral:

  1. Digits . Digitsвыбрать ExponentPartвыбрать FloatTypeSuffixвыбрать
  2. . Digits ExponentPartвыбрать FloatTypeSuffixвыбрать
  3. Digits ExponentPart FloatTypeSuffixвыбрать
  4. Digits ExponentPartвыбрать FloatTypeSuffix

...

FloatTypeSuffix: one of

f F d D

Оба DecimalFloatingPointLiteral, первый тип 1, второй тип 4

person jlordo    schedule 14.05.2013

Перейдите к разделу JLS о литералах с плавающей запятой:

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

Так что это двойной, если это не суффикс

person Juned Ahsan    schedule 14.05.2013