在我的应用程序中,我尝试格式化数字,使其具有全部3位小数。我使用StringString编号生成一个数字,我发送的字符串是" 1,000"问题在于它是每个" 1"的响应。 当我从swift 2.3迁移到swift3
时发生了这种情况这是我的代码。
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 3
formatter.maximumFractionDigits = 3
formatter.minimumIntegerDigits = 1
let quantityTxt = self.quantityTextField.text //it print "1,000"
let quantity = formatter.number(from: quantityTxt!)
print(quantity!) //it print "1"
答案 0 :(得分:0)
注意:我假设你所在的地方是逗号","是小数点分隔符....
您可以在Playground中运行此功能,看看到底发生了什么:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 3
formatter.maximumFractionDigits = 3
formatter.minimumIntegerDigits = 1
// assign the string of "1,000" to quantityTxt variable
let quantityTxt = "1,000"
// convert that string into a Number
let quantity = formatter.number(from: quantityTxt)
// output the "default" string representation of a Number
print(quantity!) //it prints "1"
// now, convert that Number back into a formatted string
let qString = formatter.string(from: quantity!)
// output that string
print(qString) // it prints "1,000"
并且,如果您将字符串更改为" 1,001"然后两次次将打印 1,001 - 因为这是数字 1,001
的默认字符串表示形式