首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果是Swift中的整数,则双倍显示Int

如果是Swift中的整数,则双倍显示Int
EN

Stack Overflow用户
提问于 2017-04-19 07:05:26
回答 3查看 2K关注 0票数 3

我正在尝试编写一个方法,该方法将检查.0中的“双尾”与“其他”之间的关系。例如,检查它是否是2.0vs 2.12345。

如果它是2.0,那么我希望它只显示2,但如果它是2.12345,那么显示2.12345。

我的想法是编写一个func,它以Double作为参数并返回Int,但是如果输入结果是.12345,它就不能返回它。

所以我想知道我的思维方式是否会通过调整来工作,或者是否有一种类似的方法。

我在想,也许返回类型可能是Int & Double,但我不知道这是怎么回事。

到目前为止,这就是我所拥有的

代码语言:javascript
运行
复制
  private func checkIfWholeNumber(displayedDouble: Double) -> Int {
    if displayedDouble.truncatingRemainder(dividingBy: 1) == 0 {
      return Int(displayedDouble)
    } else {
      return //
    }
  }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-19 07:55:37

将“双”转换为“数字”,如果要在标签上显示,则转换为“字符串”。

代码语言:javascript
运行
复制
let i = 1.0
let j = 1.2345

// Value in String

let a = NSNumber(value: j).stringValue  // "1.2345"
let b = NSNumber(value: i).stringValue  // "1" 

// Value in Double

let c = NSNumber(value: i).doubleValue  // 1.0
let d = NSNumber(value: j).doubleValue  // 1.2345
票数 3
EN

Stack Overflow用户

发布于 2017-04-19 07:19:43

只需使用rounded函数即可。

代码语言:javascript
运行
复制
func check(val:Double)->Int?{
    let rounded = val.rounded()
    return rounded == val ? Int(rounded) : nil
}
票数 1
EN

Stack Overflow用户

发布于 2020-02-16 00:02:23

Swift 4+

代码语言:javascript
运行
复制
let i = 2.0
let j = 2.12345

let nf = NumberFormatter()
nf.maximumFractionDigits = 6

let a = nf.string(for: i) ?? "" // 2
let b = nf.string(for: j) ?? "" // 2.12345

对于另一个选项,此示例使用NumberFormatter()。我只是主观地把最大数字设置为6。

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

https://stackoverflow.com/questions/43488749

复制
相关文章

相似问题

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