我试图将String转换为十进制Double或NSNumber。
继承我的字符串:
"-2000" or "2000"
应该成为:
-20.00 or 20.00
已经尝试过:
print("NSNumber \(NSNumberFormatter().numberFromString(amount)!.decimalValue)")
print("Double \(Double(amount))")
但是当它的负数返回为零时,或者当它的正数在逗号后面只返回一个数字时。
答案 0 :(得分:1)
var amount = "-2000" // String
var doubleNumber = Double(amount / 100)! // Double
var stringWithFormat = NSString(format: "formatted number %.2f", doubleNumber) // to get String with your format
变量为Double时。 -20.0和-20.00是相同的值。 仅当变量为字符串“-20.0”且“-20.00”不同时
答案 1 :(得分:0)
快速将String转换为NSNumber,然后在逗号
后打印2个数字let value = "-2000"
let f = NSNumberFormatter()
f.numberStyle = .DecimalStyle
let n = f.numberFromString(value)!
NSLog("%.2f", n.floatValue)
答案 2 :(得分:0)
你可以做到
Double(("-2000" as NSString).doubleValue / 100)
我会为那个
创建一个简单的扩展名(String + decimalPrice.swift)extension String {
var decimalPrice: Double {
return (self as NSString).doubleValue / 100
}
}
let price = "-999".decimalPrice
print(price) # -> -9.99