NSString stringWithFormat, point et virgule

Salut à  tous. La phase d'alpha test montre déjà  un problème de base, c'est l'affichage des valeurs numériques. Si elles sont affichées telle quelle (par un binding ou bien par un setFloatValue) on a une virgule. Par contre, si je fais un pré formatage (pour mettre une unité et pour limiter l'affichage à  3 chiffres après la virgule) avec un stringWithFormat, j'ai un point à  la place de la virgule.



@%f me donne un réel avec tous les chiffres après la virgule, mais avec un point

@%1.3f me donne un réel avec trois chiffres après la virgule (même si ce sont des zéros) et un point

@%1,3f ne fonctionne pas



Le problème vient je pense du fait que Xcode n'est pas du tout localisé. Dans ce cas, comment faire ?

Réponses

  • CéroceCéroce Membre, Modérateur
    Les %f et compagnie sont les spécificateurs de formats utilisés par les fonctions printf() et compagnie de la bibliothèque standard du C. Ce n'est pas la peine d'essayer de les bidouiller.



    Ce n'est pas une histoire de traduction de l'application. Le séparateur décimal dépend des réglages de l'utilisateur (NSLocale).

    Dans ton cas, utilise simplement -[NSString localizedStringWithFormat:] qui utilise la locale courante.
  • Merci, j'essai dès ce soir. Donc, pour résumer, j'utilise localizedStringWithFormat à  la place de stringWithFormat. Et si je souhaite limiter l'affichage à  trois chiffres après la virgule, est-ce que j'utilise la même chaà®ne de formatage ?
  • CéroceCéroce Membre, Modérateur
    novembre 2012 modifié #4
    Oui %.3f.

    Si tu trouves un peu de temps, jette un oe“il à  NSNumberFormatter et la doc associée ;-)
Connectez-vous ou Inscrivez-vous pour répondre.