objective-c - NS表达式 1/2

标签 objective-c cocoa nsexpression

我想计算一个字符串,我正在这样做:

NSExpression *expression = [NSExpression expressionWithFormat:calculationString];
float result = [[expression expressionValueWithObject:nil context:nil] floatValue];
NSLog(@"%f", result);

问题是,当计算字符串为1/2时,结果为0。我尝试用double和NSNumber将float和%f更改为%f和%@,但我总是得到0。我有什么改变?

此外,如果重要的话,我在欧洲,所以我用逗号而不是这个值的点,但这应该不重要,因为我使用 %f 记录,将其显示为点。仅供引用

最佳答案

基本上,你只需要告诉它你正在执行浮点运算,

1.0/2
1.0/2.0
1/2.0

一切正常

关于objective-c - NS表达式 1/2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35832331/

相关文章:

ios - 为什么在 ionic4 的 xcode 中会出现此错误

objective-c - 附加到 NSString 时应该使用中间临时变量吗?

cocoa - sRGB 到 NSColor

python - 什么替代了 OSX 上 Python 中现已弃用的 Carbon.File.FSResolveAliasFile?

multithreading - Cocoa 应用程序中无法解释的 NSUndoManager 崩溃/断言

ios - 是否可以在 havingPredicate 中使用 group by count 来获取 CoreData(用于欺骗检测)?

ios - uitableview insertRowAtIndexPath 将行加倍

swift - 字符串格式参数绑定(bind)字典

ios - 评估 NSExpression 中的值

iphone - 解析.com : PFQueryTableViewController with PFUser