7
votes

Désactiver la locale pour Nsnumberformater

im en utilisant un nsnumberformater avec le format de "##, ## 0,00", mais mes paramètres régionaux sont définis sur la région de l'Afrique du Sud qui utilise un format de devise comme "## ## 0.0 ", est-ce qu'il y a un moyen pour moi de désactiver nsnumberformater à partir d'une locale et d'utiliser spécifiquement ce que j'ai saisi pour le format? J'ai essayé d'aller juste: xxx

et xxx

une sortie de mon programme:

format = # , ## 0,00

résultat = -8,933,434,38

Il existe une variable xxx

mais c'est seulement pour OS X

Un serveur va me dire quel nombre format de numéro à utiliser et a besoin de remplacer ce que l'utilisateur a défini leur région à.

Code correspondant: < Pré> xxx

sortie xxx

modifie vos paramètres sous General - International - Région Format en Afrique du Sud Si vous souhaitez tester


1 commentaires

Montrez tout le code correspondant à la configuration du formateur de numéro et à la conversion d'un numéro à une chaîne.


3 Réponses :


0
votes

comme Rintaro Réponse Vous suggère de devoir ajouter séparateur de regroupement et séparateur décimal xxx

sortie de la console xxx


1 commentaires

Malheureusement, cela ne semble toujours pas fonctionner, avez-vous essayé de changer votre région en Afrique du Sud sous le format général - International - Région?



11
votes

comme pour la chaîne de formatage, , signifie séparateur de regroupement et . signifie séparateur décimal qui spécifié par la locale , caractère littéral . Voir Spécification du format .
Pour remplacer cela, vous devez spécifier les paramètres régionaux que regroupement séparateur est , et séparateur décimal est . Comme EN_US_POSIX xxx

ou spécifier manuellement séparateur de regroupement et séparateur décimal comme: xxx < / pré>


0 commentaires

0
votes
-(NSString *)amount:(NSString *)val{
    NSNumber *someNumber = [NSNumber numberWithDouble:[val doubleValue]];
    NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
    [nf setNumberStyle:NSNumberFormatterCurrencyStyle];
    // if you want to add the  custom currency than you need to specify otherwise it will take the $ USD currency. here you have to pass the string with valid string amount without ex: 135.21 (Valid), 13,2000.00 (Invalid), $123 (Invalid).
    return  [nf stringFromNumber:someNumber];
}

1 commentaires

Merci pour ce code Snippet, qui peut fournir une aide immédiate. Une explication appropriée serait améliorer considérablement sa valeur éducative en montrant pourquoi c'est un bon solution au problème et le rendrait plus utile aux futurs lecteurs avec des questions similaires, mais pas identiques. Veuillez éditer votre réponse pour ajouter une explication et donner une indication de quelles limitations et hypothèses s'appliquent.