NSString - Обрезать все после десятичной точки в двойном - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть двойное число, мне нужно только значение всего до десятичной точки.

В настоящее время я использую

NSString *level = [NSString stringWithFormat:@"%.1f",doubleLevel];

, но при значении 9,96 возвращается «10». Так что это округление. Мне нужно, чтобы вернуть только «9». (примечание: если значение равно 9,95, оно правильно возвращает значение «9».)

Есть предложения?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 29 февраля 2012

Просто присвойте значение типа float / double значению int.

int intValue = doubleLevel;
1 голос
/ 29 февраля 2012

Приведите этого ребенка к себе.

int castedDouble = doubleLevel;

Все после . в двойнике будет усечено.

9.1239809384 --> 9

123.90454980 --> 123

Нет округления, простое усечение.

0 голосов
/ 29 февраля 2012

Если вы хотите сохранить его как число с плавающей точкой:

CGFloat f = 9.99;
f = floorf(f);

существует множество реализаций floor и round.они существуют со времен UN * X и являются частью этих библиотек низкого уровня, будь то BSD, Posix или какой-либо другой разновидности - вам следует ознакомиться с ними.

Существуют разные версии дляразличные "глубины" переменных с плавающей точкой.

0 голосов
/ 29 февраля 2012
NSString *level = [NSString stringWithFormat:@"%d",doubleLevel];
...