【问题标题】:How to get the first number after a decimal point of a Double?如何获得Double小数点后的第一个数字?
【发布时间】:2019-05-05 11:20:58
【问题描述】:

我有一个像这样的 Double:

339.09965653839

如何获得点后的第一个数字?

0 // desired result

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

【问题讨论】:

    标签: swift string type-conversion double substring


    【解决方案1】:

    将双精度转换为字符串并获取点后的第一个字符。

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

    【讨论】:

    • 这不适用于使用除. 符号以外的小数分隔符的语言环境,并且有很多这样的语言环境。
    【解决方案2】:

    要获得Int 的数字,您可以做一些数学运算:

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

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

    【讨论】:

      【解决方案3】:

      或者,或者:

      let number = 123.456
      
      // 1234 % 123 = 4
      let digit = Int(number * 10) % Int(number)
      

      【讨论】:

        猜你喜欢
        • 2011-04-22
        • 2019-07-12
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        • 2018-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多