Что означает обозначение «f» с плавающей точкой? - PullRequest
2 голосов
/ 08 февраля 2011

Интересно, кто-нибудь может уточнить, что для обозначения используется "f" за числом с плавающей запятой?

float myFloat = 12.0f;

применительно к:

float myFloat = 12.0;

Я видел этоиспользуется много раз, но найти объяснение в Интернете или в книгах довольно сложно.Я предполагаю, что это либо что-то перенесено из другого языка, который поддерживается для согласованности C, либо, может быть, это как директива для компилятора, когда дело доходит до оценки математики.Разница между "F" и использованием "."обозначить число с плавающей запятой?

Ответы [ 2 ]

4 голосов
/ 08 февраля 2011

Это означает, что это одинарная точность float, а не двойная точность double.

Из стандарта C99:

Нефиксированная плавающая константа имеет тип double. Если к букве f или F добавляется суффикс, он имеет тип float.

Objective-C основан на C, возможно, не на C99, но это соглашение существует в C в течение long времени.

0 голосов
/ 08 февраля 2011

Иногда при преобразовании из числа с плавающей запятой возникают проблемы с производительностью, и вы можете избежать их, используя 'f'.Также, когда вы делаете, скажем, квадратный корень, sin, cos и т. Д., Дикое предположение скажет, что

float answer = sqrt (12.0f)

примерно в 10 раз медленнее, чем

float answer = sqrtf (12.0f)

Это действительно имеет значение для телефона и iPad, если вы выполняете миллионы операций такого рода.Оставайтесь на плаву, если вам нужна скорость и вы можете справиться с меньшим разрешением.Если вы плохо разбираетесь в математике или не используете много математики в своей программе, везде используйте double, так как при использовании 32-битного float с более низкой точностью больше ошибок.

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