Буква рядом с цифрой константа в C ++? - PullRequest
1 голос
/ 12 августа 2010

Что означает буква рядом с константой цифры?Например:

int number = 0;
float decimal = 2.5f;
number = decimal;

Какая разница между 2,5f и f2,5?Я уже посмотрел в руководствах, но я действительно не могу понять это.Объясни мне, пожалуйста, в простом формате.

Ответы [ 5 ]

3 голосов
/ 12 августа 2010

Значение 2.5 будет двойным, тогда как 2.5f - это число с плавающей точкой. Если у вас нет особых причин не делать этого, лучше использовать двойные числа, а не числа с плавающей точкой - они более точные и даже могут быть быстрее.

2 голосов
/ 12 августа 2010

В чем разница между 2,5f и f2,5

  • 2,5f - это значение 2,5 в виде числа с плавающей запятой,
  • f2.5 - это переменная с именем "f2", за которой следует ".5", что является синтаксической ошибкой.
2 голосов
/ 12 августа 2010

С здесь :

Константы с плавающей точкой по умолчанию имеют тип double. Используя суффиксы f или l (или F или L - суффикс не чувствителен к регистру), константа может быть указана как float или long double соответственно.

Не думаю, что формат f2.5 допустим.

1 голос
/ 12 августа 2010

Чисто в качестве дополнительной информации (на самом деле это не прямой ответ на вопрос), я бы отметил, что для указания типа символа или строкового литерала вы используете префикс (например, L "широкая строка"), тогда как с числовой литерал, который вы используете суффикс (например, 2L или 3.5f).

C ++ 0x добавляет еще несколько префиксов и суффиксов для указания большего количества типов данных (например, в настоящее время существуют только узкие и широкие строковые литералы, но C ++ 0x будет иметь узкие, широкий, Unicode, сырой, и, вероятно, по крайней мере, еще пару, о которых я не могу думать в настоящее время). Он также добавляет пользовательские литералы, которые позволяют вам определять свои собственные суффиксы, так что что-то вроде 150km может использоваться для создания distance объекта или "127.0.0.1"ip для создания IP_address объекта.

0 голосов
/ 12 августа 2010

f2.5 незаконно.2.5f (или 2.5F) заставляет 2.5 интерпретироваться как float, а не как double.Кроме того, существует суффикс l / L для целочисленных констант long с.

number = decimal усекает последние, я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...