我想在Swift中打印数据Double,但输出总是4.444444444444e + 24,而不是实数。
我该怎么做?
答案 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)