double mydouble = 122.12022222223322;
NSString *str = [NSString stringWithFormat:@"%.2f", mydouble];
// = @"122.12"
.. не округляется mydouble
. Вместо этого он будет применять только формат к выводу в виде строки.
double d = 122.49062222223322;
NSString *dStr = [NSString stringWithFormat:@"%.f %.1f %.2f %.3f", d, d, d, d];
// = @"122 122.5 122.49 122.491"
В качестве цели - C разделяет языковые правила из C, вы можете безопасно округлить с помощью
#include <math.h>
double rounded = round(mydouble);
// = 122.000000
из Конечно, вы можете сдвинуть запятую с умножением и делением степени десяти, если хотите. Foundation Framework .
И последнее, но не менее важное: вы можете сделать то же самое с C, что и со swift.
double roundbycomma(int commata, double zahl) {
double divisor = pow(10.0, commata);
return round(zahl * divisor) / divisor;
}