Swift 将字符串转换为数字、格式;除非无法强制转换,否则string=string
变量Swift 将字符串转换为数字、格式;除非无法强制转换,否则string=string,swift,casting,conditional,Swift,Casting,Conditional,变量benefit.amount以字符串形式输入 var amount = String() if let tempAmount = benefit.amount as? NSDecimalNumber { amount = Formatter.currencyFormat(tempAmount) } else { amount = tempAmount } 我所要做的就是,如果benefit.amount类似于1000,我就可以在上面使用货币格式化程序。有时,尽管该变量可能看
benefit.amount
以字符串形式输入
var amount = String()
if let tempAmount = benefit.amount as? NSDecimalNumber {
amount = Formatter.currencyFormat(tempAmount)
} else {
amount = tempAmount
}
我所要做的就是,如果benefit.amount
类似于1000
,我就可以在上面使用货币格式化程序。有时,尽管该变量可能看起来像是政策年度最大福利中包含的,但显然无法将其转换为数字
请告知。请尝试将值转换为Int
。初始化器在失败时返回nil
let amount : String
if let tempAmount = Int(benefit.amount) {
amount = Formatter.currencyFormat(tempAmount)
} else {
amount = benefit.amount
}
只需尝试将该值转换为Int
。初始化器在失败时返回nil
let amount : String
if let tempAmount = Int(benefit.amount) {
amount = Formatter.currencyFormat(tempAmount)
} else {
amount = benefit.amount
}
您必须使用init(string:)
方法,并将结果与NSDecimalNumber.notANumber()进行比较:
您必须使用init(string:)
方法,并将结果与NSDecimalNumber.notANumber()进行比较:
如果您尝试转换类似“1.23”的金额,则Int
init方法将失败。使用
浮点
是有问题的,因为十进制数在内部二进制格式中存储不好,并且通常不会得到与开始时相同的值NSDecimalNumber
用于准确存储以10为基数的数字。如果尝试转换类似“1.23”的金额,则Int
init方法将失败。使用
浮点是有问题的,因为十进制数在内部二进制格式中存储不好,并且通常不会得到与开始时相同的值NSDecimalNumber
用于准确存储基数为10的数字。