Swift3 如何阻止N表达式舍入

Swift3 如何阻止N表达式舍入,swift3,nsexpression,Swift3,Nsexpression,我一直在用Swift 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)); 上述代码

我一直在用Swift 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

let expression = NSExpression(format: "3 / 2");
let answer: Double = expression.expressionValue(with: nil, context: nil) as! Double;
Swift.print(String(answer));

有人知道如何阻止N表达式舍入吗?谢谢。

表达式使用整数除法,因为您的操作数是整数。请尝试以下方法:

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
在插入
Double
初始值设定项之前被计算为
1

但是,此代码将给出
答案
1.5

let answer = Double(3.0 / 2.0)

这是因为
3.0/2.0
将根据
Double
的除法运算而不是
Integer
的除法运算进行计算,谢谢您的帮助