Je veux convertir une chaîne en un double et après avoir fait quelques calculs là-dessus, le convertir en chaîne.
Comment je fais cela en Objective-C ?
Y a-t-il une façon de compléter un double à l’entier le plus proche de trop ?
Je veux convertir une chaîne en un double et après avoir fait quelques calculs là-dessus, le convertir en chaîne.
Comment je fais cela en Objective-C ?
Y a-t-il une façon de compléter un double à l’entier le plus proche de trop ?
Vraiment convertir une chaîne en un nombre correctement, vous devez utiliser une instance de NSNumberFormatter
configuré pour les paramètres régionaux à partir de laquelle vous êtes en train de lire la chaîne de caractères.
Différents paramètres régionaux de format de nombres différemment. Par exemple, dans certaines parties du monde, COMMA
est utilisé comme séparateur décimal, alors que dans d'autres, c'est - PERIOD
- et le séparateur des milliers (si utilisé) est inversé. Sauf quand c'est un espace. Ou n'est pas présent du tout.
Cela dépend vraiment de la provenance de l'entrée. La chose la plus sûre à faire est de configurer un NSNumberFormatter
pour la façon dont votre entrée mise en forme et d'utilisation -[NSFormatter numberFromString:]
pour obtenir un NSNumber
. Si vous souhaitez gérer les erreurs de conversion, vous pouvez utiliser -[NSFormatter getObjectValue:forString:range:error:]
à la place.
Voici un exemple fonctionnel de NSNumberFormatter lecture localisé une chaîne numérique (xCode 3.2.4, osX 10.6), pour sauver celle des autres les heures que j’ai passé juste déconner autour. ATTENTION : bien qu’il peut gérer les espaces tels que « 8,765.4 », cela ne peut pas gérer des espaces blancs et cela ne peut pas gérer les caractères de texte errants. (Les chaînes d’entrée bad : « 8 » et 8 « q » et « 8 q ».)
mode d’arrondi d’olliej est mauvais pour les nombres négatifs
Voici une alternative
Vous pouvez bien sûr utiliser une fonction arrondie de math.h
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.