我用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"
}
}