所以我有一个Double计算并且每次都有不同的长度(基于某些输入)。这个Double放在一个String中。
var doubleNumber = 30440.8734
var string = "€ \(round(100 * doubleNumber) / 100)"
var numberString: String = string.stringByReplacingOccurrencesOfString("€ ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
var splitString = split(numberString) {$0 == "."}
println(splitString[0])
结果将是:“30440”
我想要做的是在这个数字中放置空格以便于阅读。结果将以“30 440”
结束有什么建议吗?
答案 0 :(得分:0)
无论货币格式的问题如何,您都可以使用NSNumberFormatter
在数字中添加空格作为分组分隔符:
var doubleNumber = 30440.8734
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = .CurrencyStyle
numberFormatter.currencySymbol = "€ "
numberFormatter.currencyGroupingSeparator = " "
numberFormatter.maximumFractionDigits = 0
if let formattedString = numberFormatter.stringFromNumber(doubleNumber) {
println(formattedString)
}
输出:€ 30 441
答案 1 :(得分:0)
我认为NSNumberFormatter
方法更好:
let f = NSNumberFormatter()
f.groupingSeparator = " "
f.groupingSize = 3
f.usesGroupingSeparator = true
f.stringFromNumber("30456".toInt()!)
但如果没有格式化程序我会执行此任务,那么这就是我的解决方案:
var i: Int = count(number)
let a = "".join(map(number) {String($0) + (--i % 3 == 0 ? " " : "")})
a.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())