C ++: разница между 0 и 0,0? - PullRequest
       49

C ++: разница между 0 и 0,0?

3 голосов
/ 14 декабря 2010

Я хорошо знаю разницу между 0 и 0.0 (int и double).

Но есть ли разница между 0. и 0.0 (пожалуйста, обратите внимание.)?

Заранее большое спасибо,

Аксель

Ответы [ 5 ]

7 голосов
/ 14 декабря 2010

Разницы нет.Оба литерала двойные.Из C ++ - Грамматика:

fractional-constant:
    digit-sequenceopt . digit-sequence
    digit-sequence .

См .: Гиперссылка C ++ BNF Grammar

1 голос
/ 14 декабря 2010

Просто наличие . как части числа идентифицирует его как тип с плавающей запятой.

This:

 cout << (5 / 2) << endl;
 cout << (5. / 2) << endl;
 cout << (5.0 / 2) << endl;

Печатает это:

 2
 2.5
 2.5

Вы можете видеть, что в первой строке используется целочисленное деление (поскольку оба значения являются целыми числами), тогда как 5. и 5.0 оба идентифицируются как типы с плавающей запятой, и поэтому они запускают "нормальное деление".

1 голос
/ 14 декабря 2010

Нет. Вы также можете написать .0, насколько я знаю.

1 голос
/ 14 декабря 2010

Нет, нет.

0 голосов
/ 14 декабря 2010

0 имеет тип int, но может быть приведен к удвоению, а 0.0 имеет тип double, но может быть приведен к int.
Оба приведения являются неявными.

...