使用计算器中的NSExpression停止舍入

时间:2016-03-06 20:46:16

标签: xcode swift swift2 nsexpression

我用swift构建了一个简单的基于文本的计算器。它采用类似88+9*3的表达式并吐出115。然而,我遇到了一个问题。当我进行除法(如12/5)时,答案会四舍五入(没有小数)。我理解为什么(当这个舍入发生时,所有数字都是整数,所以它不能将任何东西转换成浮点数),但如何在分割整数时停止舍入?

我无法在每个数字的末尾添加.0,因为这样会发生7.6.0之类的事情(如果用户输入的内容除以7.6),导致崩溃/没有答案。

这是我的代码:

func calculateString(calculatorinsert: String) throws -> String {
                var mathExpression = try NSExpression(format: nsexpress)
                var result:Float = try Float((mathExpression.expressionValueWithObject(nil, context: nil) as? NSNumber)!)
                if let calculated: Optional<Float> = result {
                    return String(result)
                } else {
                    return "Error"
                }
            }

0 个答案:

没有答案