我有一个函数,它接受一个双值,将它转换成货币格式,并返回一个格式化为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参数作为可选参数,然后展开,但是可选的静态显示。
发布于 2015-06-03 15:07:05
它不返回Optional("R$1.200,30"),它返回"Optional("R$1.200,30")"。这里有一个微妙的区别;注意"。正在发生的事情是formatter.stringFromNumber(valor)返回String?,您正在使用"\(...)"将其放入String中。相反,您应该返回formatter.stringFromNumber(valor)!,在这里强制展开可以,因为您知道输入是一个数字。
https://stackoverflow.com/questions/30623748
复制相似问题