如何在Swift中将Long Double转换为String

时间:2017-06-14 07:57:46

标签: swift string double

我想在Swift中打印数据Double,但输出总是4.444444444444e + 24,而不是实数。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

使用String(format: "%.0f", data)

更简单的方法是在没有科学记数法的情况下格式化双打

请注意,Double无法正确保存44444444444444444.0,因此您可能会获得44444444444444448之类的输出。

要获得正确的结果,您应该使用NSDecimalNumber,如下所示:

let decimalNumber = NSDecimalNumber(string: "44444444444444444.0")
print(decimalNumber.stringValue)

答案 1 :(得分:0)

看看这有助于你...... 此代码将数字从科学格式转换为普通格式

{{1}}

结果如下:10000000

答案 2 :(得分:0)

@ Skytect的答案几乎是正确的。它只是缺少一步。请尝试以下代码

let data1 : Double = 44444444444444444.0
let data2 : Double = 1000000.0
let data3 = data1 * data2

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
let num = NSNumber(value: data3)
let finalNumber = numberFormatter.string(from: num)
print(finalNumber!)

答案 3 :(得分:0)

更多Class和Class func方式

class Formatter {
  static let numberFormatter: NumberFormatter = {
    $0.minimumFractionDigits = 0
    $0.maximumFractionDigits = 1
    return $0
  }(NumberFormatter())

  class func string(from double: Double) -> String {
    let nsNumber = NSNumber(value: double)
    guard let formattedString = numberFormatter.string(from: nsNumber) else { fatalError("Should never happen")  }
    return formattedString
  }
}

用法
UITextField.text = Formatter.string(来自:double)