sacar - Localice un flotador y especifique el número de lugares decimales en iOS
como poner coordenadas en mapas de iphone (1)
Tengo un flotador que me gustaría mostrar con un decimal. Ej. 104.8135674 ... para que se muestre como 104.8 en inglés. Usualmente usaría:
myString = [NSString stringWithFormat:@"%.1f",myFloat];
Sin embargo, me gustaría localizar el número, así que probé:
myString = [NSString localizedStringWithFormat:@"%.1f",myFloat];
Esto funciona para asignar el símbolo decimal correcto (p. Ej.
Inglés: 104.8
Alemán: 104,8
Sin embargo, para los idiomas que usan no se usan números arábigos (0123456789), se usa el símbolo decimal correcto, pero los números siguen siendo en números arábigos. p.ej
Bahrein-árabe: 104,8 (debe usar diferentes símbolos para los números)
Así que lo intenté:
myString = [NSNumberFormatter localizedStringFromNumber:[NSNumber numberWithFloat:myFloat] numberStyle:kCFNumberFormatterDecimalStyle];
Pero con eso no puedo especificar el número de decimales. Da por ejemplo
Inglés: 104.813
NSNumberFormatter -setMaximumFractionDigits:
se usa para ese fin y puede reutilizar el formateador que es bastante bueno:
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:1];
[formatter setLocale:[NSLocale currentLocale]];
NSString * myString = [formatter stringFromNumber:[NSNumber numberWithFloat:123.456]];