gpt4 book ai didi

ios - 使用 Swift 如何将字符串转换为数字

转载 作者:行者123 更新时间:2023-11-28 09:34:57 26 4
gpt4 key购买 nike

我从 Web 服务中获取返回值,该服务以字符串格式返回价格,它被放入字典中,因此我返回的价格为“1.5000”,例如,这显然是 1.50 的货币。然而,对于我来说,我无法在 Swift 中使用任何东西来正确格式化它。在大多数其他语言中,您可以在几秒钟内完成此操作,所以我对如此简单的事情感到有点沮丧。

这是我的测试代码:

    var testnumber = "1.5000"
let n = NSNumberFormatter()
n.numberStyle = NSNumberFormatterStyle.DecimalStyle
n.maximumFractionDigits = 2
n.minimumFractionDigits = 2
let returnNumber = n.numberFromString(testnumber)
println("Returned number is \(returnNumber)")

这会在调试中打印出“number is Optional(1.5)”而不是 1.50!

我已将 NSNumberFormatterStyle.DecimalStyle 更改为 NSNumberFormatterStyle.CurrencyStyle,因为我认为这可能对我有用,因为返回的数字无论如何都是一种货币,但这让我回到调试状态“返回的数字为零” - 这更加令人困惑给我!

我尝试过使用 maximumIntegerDigits 和 minimumIntegerDigits,使用 n.locale = NSLocale.currentLocale() 设置语言环境,设置 formatWidth,设置 paddingPosition 和 paddingCharacter 但没有任何帮助,我要么将 nil 恢复为 1.5。

我最终需要做的就是将字符串转换为 float 或货币值,并确保有 2 位小数,我不敢相信这很难完成!

如有任何帮助,我们将不胜感激。

最佳答案

你正在打印一个数字而不是一个字符串

Xcode 11.4 • Swift 5.2 或更高版本

extension Formatter {
static let usCurrency: NumberFormatter = {
let formatter = NumberFormatter()
formatter.locale = .init(identifier: "en_US")
formatter.numberStyle = .currency
return formatter
}()
}

extension String {
var double: Double? { Double(self) }
var usCurrencyFormatted: String {
Formatter.usCurrency.string(for: double) ?? Formatter.usCurrency.string(for: 0) ?? ""
}
}

"1.1222".usCurrencyFormatted           // "$1.12"
"2".usCurrencyFormatted // "$2.00"

关于ios - 使用 Swift 如何将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27991601/

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