【发布时间】:2014-05-27 14:28:35
【问题描述】:
我已经实现了一个自定义计算器,我在其中使用以下代码来计算算术表达式,例如 5+3*5-3。
- (NSNumber *)evaluateArithmeticStringExpression:(NSString *)expression {
NSNumber *calculatedResult = nil;
@try {
NSPredicate * parsed = [NSPredicate predicateWithFormat:[expression stringByAppendingString:@" = 0"]];
NSExpression * left = [(NSComparisonPredicate *)parsed leftExpression];
calculatedResult = [left expressionValueWithObject:nil context:nil];
}
@catch (NSException *exception) {
NSLog(@"Input is not an expression...!");
}
@finally {
return calculatedResult;
}
}
但是当我使用除法运算得到整数时,我得到的结果只有整数。假设 5/2 我得到 2 结果。由于整数除法,它适合编程的震动。
但我需要浮点结果。
我怎样才能得到它而不是扫描表达式字符串并将整数除数替换为浮点数。在我们的示例中为 5/2.0 或 5.0/2。
【问题讨论】:
-
在 Objective-C 中,异常是为编程错误保留的,而不是控制流。
-
一种选择是传入浮点数:“5.0/2.0”。
标签: ios objective-c floating-point nsexpression