代码之家  ›  专栏  ›  技术社区  ›  Cue

如何获得双精度小数点后的第一个数字?

  •  0
  • Cue  · 技术社区  · 7 年前

    我有这样的双人床:

    339.09965653839
    

    我怎样才能得到点后的第一个数字?

    0 // desired result
    

    我试图研究类似的问题,但不幸的是,我找到了唯一的方法,将一个double分为两部分,也就是这两个double。我想有一个Int,然后能够打印成字符串。

    3 回复  |  直到 7 年前
        1
  •  3
  •   rmaddy    7 年前

    将数字作为 Int ,你可以做一点数学:

    let someNum = 339.09965653839
    let digit = Int((someNum - Double(Int(someNum))) * 10)
    

    当然,这是微不足道的显示 digit 根据需要输入/作为字符串。

        2
  •  2
  •   Sander Saelmans    7 年前

    let number = 123.456
    
    // 1234 % 123 = 4
    let digit = Int(number * 10) % Int(number)
    
        3
  •  1
  •   Khushbu    7 年前

    将double转换为string并获取点后的第一个字符。

    let value = 339.09965653839
    let valueInString = "\(value)".split(separator: ".")
    print(valueInString[1].first ?? "")