我有一个接受 double 值的函数,将其转换为货币格式并返回格式类似于 R$:1.200,30 的字符串。
func convert_Value(valor: Double) ->String {
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = NSLocale(localeIdentifier: "pt_BR")
return ("\(formatter.stringFromNumber(valor))")
}
这个函数没有声明任何可选变量,但是当我调用它时使用:
x = convert_Value(1200.30)
它返回:
Optional("R$1.200,30")
我不知道我需要做什么,因为它不是可选的,我不能使用感叹号来打开可选的。 我试图将函数中的 Double 和 String 参数转换为 Optional 然后解包,但 Optional 仍然显示。
最佳答案
它不返回 Optional("R$1.200,30")
,它返回 "Optional("R$1.200,30")"
。那里有细微的差别;注意 "
。发生的事情是 formatter.stringFromNumber(valor)
返回 String?
,您将其放入 String
使用 "\(...)"
。相反,你应该返回 formatter.stringFromNumber(valor)!
,在这里强制展开是可以的,因为你知道输入是一个数字。
关于swift - 函数返回可选 ("String"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30623748/