Умное округление по количеству цифр в Objective-C
Привет, я хочу, чтобы умные вокруг числа с плавающей запятой, чтобы сохранить количество цифр постоянным. Этот номер всегда будет иметь 1 или 2 целые цифры + неопределенные десятичные цифры.
Я хочу, чтобы номер всегда состоял из 3 цифр, независимо от их положения
EX:
83.235 = 83.2
0.110321 = 0.11
4.56723 = 4.57
1 ответ
Если ведущие нули не считаются цифрами
NSNumberFormatter имеет свойства SignificantDigits, MinimumSignificantDigits и MaximumSignificantDigits, которые должны делать то, что вам нужно. Установите оба значения на 3, или просто на максимум, если вы не хотите использовать конечные нули для значений с меньшим количеством десятичных знаков.
Если вы хотите, чтобы начальные нули считались цифрами
Я не знаю каких-либо встроенных способов справиться с этим, но вы могли бы написать некоторую пользовательскую логику, чтобы сделать это. например
if (yourNum < 10)
formattedNum = [NSString stringWithFormat:@"%.2f", yourNum];
else
formattedNum = [NSString stringWithFormat:@"%.1f", yourNum];
При этом предполагается, что число всегда находится в диапазоне от 0 до 99. Как бы то ни было, поэтому, если вы не уверены на 100% в целостности данных, вам, вероятно, понадобятся дополнительные проверки.