J'ai une expression de la strCal chaîne strcal valeur est @ "((24 - 18)/87) * 100" Je veux avoir le résultat correct à 4 décimales afin Je récupère le résultat en utilisant la méthode floatValueobtenir zéro au lieu d'une valeur flottante-Objective C
Mais au lieu de 6,8966 je reçois 0
Ceci est mon code
NSString *strCal=[NSString stringWithFormat:@"
((%d%@)%@)%@",number,strMinus,strDivide,strMultiple];
NSExpression *exp=[NSExpression expressionWithFormat:strCal];
float result=[[exp expressionValueWithObject:nil context:nil] floatValue];
NSLog(@"result:%f",result);
résultat: 0,000000
Comme vous avez dit, dividende ou le diviseur doit être un flotteur. En fait, dépend du compilateur. Parfois seulement le dividende doit être au moins un flotteur, ou seulement le diviseur, et parfois, les deux ... Donc, pour être prudent, je recommande de convertir les deux en flotteur. – Larme
@Larme U signifie que tous les compilateurs de xcode n'ont pas cette fonctionnalité? –
Je n'ai pas essayé avec XCode et les versions du compilateur. Je le sais par des collègues qui travaillent sur d'autres projets en C (pour l'électronique) par exemple. – Larme