Bug valeurs négatives

Bonjour,


 


OSX 10.9.2 présente un bug dans l'affichage des valeurs négatives lors de la localisation de l'application en français.


 


Le code ci-dessous :



NSNumberFormatter * aFormatter = [[NSNumberFormatter alloc] init];
[aFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSLog(@%@", aFormatter.locale.localeIdentifier);
NSLog(@%@", [aFormatter stringForObjectValue:@(1000.10)]);
NSLog(@%@", [aFormatter stringForObjectValue:@(-1000.10)]);

donne le résultat suivant sous OSX 10.8.5


 


2014-04-29 16:36:25.477 Devis[6984:303] fr_FR


2014-04-29 16:36:26.085 Devis[6984:303] 1 000,10 €


2014-04-29 16:36:26.849 Devis[6984:303] -1 000,10 €


 


et le résultat suivant sous OSX 10.9.2


 


2014-04-29 16:30:49.338 Devis[1145:303] fr_FR


2014-04-29 16:30:50.003 Devis[1145:303] 1 000,10 €


2014-04-29 16:30:50.848 Devis[1145:303] (1 000,10 €)


 

Quelqu'un a-t-il constaté cette anomalie ?

 

Merci

Réponses

  • AliGatorAliGator Membre, Modérateur
    Ce n'est pas forcément une "anomalie" mais un changement de format.
    Le format / réglage existe pour demander que les nombres négatifs soient représentés entre parenthèses. Je ne sais plus dans quelle locale et quel format régionnal ils utilisent ça plutôt qu'un "moins" mais j'ai déjà  vu ça.

    Alors ça reste un bug qqpart car ce n'est pas le même comportement entre 10.8 et 10.9, un comportement par défaut qui a changé. Mais tu devrais pouvoir le changer en ne te basant pas sur les comportements par défaut mais en imposant le tien.

    Je ne sais pas exactement laquelle des propriétés fait que les nombres négatifs sont entre parenthèses, mais ça doit se jouer autour soit de setNegativePrefix:/setNegativeSuffix: soit autour de negativeFormat (genre peut-être que sous 10.9 il est forcé par défaut à  un format qui utilise des parenthèses mais que si tu le forces à  nil il ne va pas utiliser de format spécifique pour les valeurs négatives et va utiliser le même format que pour les valeurs positives, donc sans parenthèses?)
Connectez-vous ou Inscrivez-vous pour répondre.