gpt4 book ai didi

ios - NumberFormatter 在 swift 3 迁移后不起作用

转载 作者:行者123 更新时间:2023-11-30 12:24:47 26 4
gpt4 key购买 nike

在我的应用程序中,我尝试格式化数字,使其具有全部 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"

最佳答案

注意:我假设您所在的区域设置中逗号“,”是小数点分隔符......

您可以在 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 - 因为这是 Number< 的默认字符串表示形式/strong>1,001

关于ios - NumberFormatter 在 swift 3 迁移后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44336375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com