J'accepte Nstring comme de uipickerview.
Je veux p> Je devrais pouvoir obtenir la chaîne dans le message après que je fais les calculs.
Mon programme est en train de casser p> p>
4 Réponses :
double cal = [value doubleValue] + ([value2 doubleValue] * 8) + 3; NSString *message =[[NSString alloc] initWithFormat:@"%f",cal];
Maintenant c'est juste complètement subjectif
J'ai regardé autour de moi et jusqu'à présent% f et% g semblent être identiques selon la plupart des références. Comment sont-ils différents?
@tc. Qu'est-ce qui ne va pas? C'est subjectif, ne soyez pas arrogant. +1 pour la compensation.
% g code> ne vous donnera pas 300 chiffres de production, sauf si vous le demandez.
double cal = [value doubleValue] + ([value2 doubleValue] * 8) + 3; NSString *message =[[NSString alloc] initWithFormat:@"%g",cal]; // do work with message [message release];
Vous ne devriez pas convertir entre les doubles et les cordes tout le temps, car il a tendance à perdre de l'exactitude (en général, vous devez être très prudent em> si vous ne voulez pas perdre de précision). p>
Par exemple, Nous nous attendions à ce que NSNumber fasse la bonne chose, mais À la fin de la journée, rien ne garantit que NextAprès (1.0,2.0) code> renvoie le plus petit double supérieur à 1 (exactement 1.00000000000000222204466492503130808472503336181640625, mais nous sommes heureux avec 1.0000000000000002). Formatage avec "% g" vient de retourner "1". P>
[[Numéro Numérovithandoudouble: NextAntaTer (1,2)] StringValue] (code> retourne également "1". Selon les docs,
- [nsnumber stringvalue] code> appels
[auto-descriptionWithLocale: nil] code> qui le formate avec "% 0.16g". Ce n'est pas assez. Nous obtenons la bonne réponse en format avec "% .17g", cependant. Je pense que "% .17g" suffit à condition que les doubles soient en double IEEE 754 64 bits et que les bibliothèques fonctionnent correctement, mais il n'y a aucune garantie. P>
[[NSString StringwithFormat: @ "%. 17g", n] doublevalue] == n code>. p>.
Merci pour cela, mais je devais juste avoir besoin de 2 décimales .. IE: 12.50
Publication d'une nouvelle réponse depuis l'acceptation de l'acceptation que String => Double:
double cost = [string doubleValue];
Pourquoi le pointeur? Il devrait être double coût = [string doublevalue];
bon point. sur un méta-niveau ... pourquoi le commentaire? Il suffit de modifier le message? :RÉ