Как отформатировать число с плавающей запятой в 2 десятичных знака в цели C - PullRequest
4 голосов
/ 29 апреля 2010

У меня есть строка, которую я конвертирую в число с плавающей точкой, которое я хочу проверить на значения в операторе if.

Исходное значение с плавающей точкой - это trueHeading iPhone, возвращаемый методом didUpdateHeading. Когда я конвертирую исходное значение с плавающей точкой в ​​строку, используя @ "%. 2f", оно работает отлично, но я пытаюсь преобразовать исходное число с плавающей точкой в ​​то же значение. Если я просто конвертирую строку в [string floatValue], я получаю тот же оригинальный номер с плавающей точкой, и я этого не хочу.

Чтобы сделать его кратким и простым, как мне взять существующее значение с плавающей запятой и просто получить первые 2 десятичных знака?

Ответы [ 2 ]

8 голосов
/ 29 апреля 2010
round( x * 100.0 ) / 100.0;
2 голосов
/ 29 апреля 2010
float x = 123.45678;
int x1 = x * 100.0;
float x2 = (float) x1 / 100.0;

или, если предпочтителен однострочный

float x3 = (float) ((int) (x * 100.0)) / 100.0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...