J'ai une instance NSNumberFormatter comme ceci:Pourquoi NSNumberFormatter n'afficherait-il pas tous les chiffres fractionnaires?
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setAlwaysShowsDecimalSeparator:NO];
[formatter setAllowsFloats:YES];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setMinimumFractionDigits:0];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
Je fournir une valeur comme celui-ci et l'imprimer:
NSNumber *number = [NSNumber numberWithFloat:4932.79661];
NSLog(@"%@", [formatter stringFromNumber:number]);
Ce que je reçois est:
4,932.796
il il manque 2 chiffres. Maintenant, la chose étrange est, si je fais le nombre beaucoup plus grand, c'est-à-dire 49328324.79661, je n'aurais que 2 chiffres fractionnaires. Une idée de ce qui pourrait ne pas fonctionner avec le formateur? Dois-je explicitement lui dire d'utiliser une précision spécifique?
en effet cela semble aider, mais il oblige à en montrer 20 qui n'est pas toujours correct. Je me demande comment les calculateurs-développeurs et d'autres gars font cela, montrant de beaux nombres à virgule flottante avec autant de précision que nécessaire individuellement à ce qui veut être affiché. –
Les calculatrices ont généralement un nombre fixe de caractères qu'elles peuvent afficher. Assurément, ils définiraient simplement ce nombre sur le nombre de caractères qu'ils pourraient éventuellement afficher et ensuite, une fois que la valeur est dans une chaîne, coupez simplement la fin. – rein