Научная запись с тремя значащими фигурами
Есть ли способ использовать научную запись в цели c и отображать только три значащие цифры? То, что я использую сейчас:
string = [NSString stringWithFormat:@"%e", floatNumber];
// floatNumber = 100000; string = 1.000000e+06
Я просто хочу строку = 1.00e+06
1 ответ
Используйте спецификатор формата ".2" следующим образом:
string = [NSString stringWithFormat:@"%.2e", floatNumber];
Спецификаторы формата, поддерживаемые методами форматирования NSString и функциями форматирования CFString, соответствуют спецификации IEEE printf...
А из спецификации printf IEEE, если вы читаете в разделе "Описание", вы найдете:
е, е
Двойной аргумент должен быть преобразован в стиле "[-]d.ddde±dd", где перед символом радиуса стоит одна цифра (которая не равна нулю, если аргумент не равен нулю) и количество цифр после него равен точности; если точность отсутствует, она должна быть принята за 6; если точность равна нулю, а флаг '#' отсутствует, знак радиуса не появляется. Цифра младшего разряда должна быть округлена в соответствии с реализацией. Спецификатор преобразования E должен производить число с "E" вместо "e", представляющим показатель степени. Экспонента всегда должна содержать не менее двух цифр. Если значение равно нулю, показатель степени должен быть равен нулю.