2012-05-14 3 views
0

Je suis un débutant dans Objective-c et j'ai un petit problème que je suis sûr que vous résoudrez en deux secondes: PPerdre de la précision avec NSString floatValue?

je cherchais pour couler une NSString à une valeur flottante sur StackOverflow et a constaté que [ NSString floatValue] peut me aider je l'ai essayé, mais je ne sais pas pourquoi je suis perdre toute la valeur après le point ...

ici le code de ma question:

- (void)setTimerDetails:(NSString *)time { 
    CCLOG(@"TEST1 = %@", time); 
    CCLOG(@"TEST2 = %f", [time floatValue]); 
    CCLOG(@"TEST3 = %f", ([time floatValue]/60)); 
    self.test.progress = ([time floatValue]/60); 
    self.crono.text = time; 
} 

comme vous pouvez le voir il est destiné à être utilisé dans une barre de progression: P

Mais voici les journaux:

2012-05-14 10:53:39.279 Colors[533:1be03] TEST1 = 58,733 
2012-05-14 10:53:39.280 Colors[533:1be03] TEST2 = 58.00000 
2012-05-14 10:53:39.280 Colors[533:1be03] TEST3 = 0.966667 

Pourquoi est-il seulement 0 après le point de la ligne de TEST2? : S

Merci de me aider les gars :)

+0

TEST1 = 58,733 utilise une virgule et non un point décimal. – Martin

+0

est-ce une virgule ou un point ??? –

+0

Test1 n'est pas un flottant avec cette virgule. –

Répondre

3

parce que

Colors[533:1be03] TEST1 = 58,733 

il est 58773 pas 58,773

donc quand il se tourner vers floatValue, il saisir que la partie "58"

+0

Merci, erreur stupide: /, il fonctionne mieux avec un '.' >< –

Questions connexes