首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止NSExpression舍入

如何阻止NSExpression舍入
EN

Stack Overflow用户
提问于 2017-01-04 03:01:07
回答 1查看 755关注 0票数 1

我在Swift 3中做了一个计算器,但遇到了一些问题。

我一直在使用NSExpression计算用户方程,但答案总是四舍五入的。

为了检查答案是否四舍五入,我计算了3 / 2

代码语言:javascript
复制
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舍入吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-04 03:21:31

表达式使用整数除法,因为操作数是整数。试一试:

代码语言:javascript
复制
let expression = NSExpression(format: "3.0 / 2.0");
let answer: Double = expression.expressionValue(with: nil, context: nil) as! Double;
Swift.print(String(answer));

考虑以下代码:

代码语言:javascript
复制
let answer = Double(3 / 2)

在这种情况下,answer仍然是1.0,因为3 / 2在插入Double初始化程序之前被计算为1

但是,这段代码将为answer提供1.5的值。

代码语言:javascript
复制
let answer = Double(3.0 / 2.0)

这是因为3.0 / 2.0将根据Double的除法操作而不是Integer的除法操作进行评估。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41455572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档