我一直在做一个计算器斯威夫特3,但遇到了一些问题。
我一直在使用NSExpression计算公式的用户,但得到的答复总是取整。
要检查答案是圆的,我计算了3/2。
let expression = NSExpression(format: "3 / 2");
let answer: Double = expression.expressionValue(with: nil, context: nil) as! Double;
Swift.print(String(answer));
上面的代码输出1.0,而不是1.5。
有谁知道如何从四舍五入停止NSExpression? 谢谢。
因为你的操作数是整数表达式使用整数除法。 试试这个:
let expression = NSExpression(format: "3.0 / 2.0");
let answer: Double = expression.expressionValue(with: nil, context: nil) as! Double;
Swift.print(String(answer));
考虑下面的代码:
let answer = Double(3 / 2)
answer
在这种情况下仍然是1.0
,因为3 / 2
被评估为1
被插入到前Double
初始化。
但是,此代码将使answer
值1.5
:
let answer = Double(3.0 / 2.0)
这是因为, 3.0 / 2.0
将基于用于除法运算来评价Double
取代的除法运算Integer
。