NSString como "1000.00" y "1.008.977,72",Cómo utilizar separador de miles en NSString
cómo puedo formatear a "1,000.00" y "1,008,977.00"
Esa es mi pregunta, y me ayude con esto, gracias de antemano.
NSString como "1000.00" y "1.008.977,72",Cómo utilizar separador de miles en NSString
cómo puedo formatear a "1,000.00" y "1,008,977.00"
Esa es mi pregunta, y me ayude con esto, gracias de antemano.
Lo hice no hace mucho tiempo. Aquí está el código:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setGroupingSeparator:@","];
[numberFormatter setGroupingSize:3];
[numberFormatter setUsesGroupingSeparator:YES];
[numberFormatter setDecimalSeparator:@"."];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:1008977.72]];
creo que sirve
EDITAR
Como Olie preguntó Voy a publicar un código que va a utilizar la configuración regional actual para configurar la agrupación/decimal separadores en sí.
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale currentLocale]];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:1008977.72]];
NSLog(@"The string: %@", theString);
Usando [NSLocale localeWithLocaleIdentifier:]
en lugar de [NSLocale currentLocale]
me dio los siguientes resultados:
[NSLocale localeWithLocaleIdentifier:@"be_NL"]
The string: 1 008 977,72
[NSLocale localeWithLocaleIdentifier:@"en_GB"]
The string: 1,008,977.72
[NSLocale localeWithLocaleIdentifier:@"DE"]
The string: 1.008.977,72
[NSLocale localeWithLocaleIdentifier:@"en_US"]
The string: 1,008,977.72
Sólo traducida en Swift:
let formatter = NumberFormatter()
formatter.groupingSeparator = ","
formatter.groupingSize = 3
formatter.usesGroupingSeparator = true
formatter.decimalSeparator = "."
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
formatter.minimumIntegerDigits = 1
let result = formatter.string(from: NSNumber(value: value)) ?? "0.00"
Eso es bastante bueno, pero voy a voto su respuesta si edita para mostrar cómo obtener el separador de agrupación para el local (* ie *, USA usa "," mientras que la mayoría de Europa usa "." como el separador de mil, y viceversa para el separador decimal.) – Olie
@Olie Espero haberlo hecho bien. No toqué ningún Objective-C desde hace bastante tiempo :-) – Novarg
¡Terrific, gracias! – Olie