swift十进制格式到双格式问题
我有一个文本字段,我可以在其中写入一个十进制键盘值,如swift十进制格式到双格式问题,swift,Swift,我有一个文本字段,我可以在其中写入一个十进制键盘值,如25.00 我将该值保存到CoreData(双精度格式)=>double(txtField.text!) 它起作用了 在设置为“德国”的设备上,值将为25,00 但在这里我会得到这个错误: Fatal error: Unexpectedly found nil while unwrapping an Optional value (swift 5) 我的错在哪里? 谢谢 您需要使用NumberFormatter来解析文本字段中的输入Numb
25.00
我将该值保存到CoreData(双精度格式)=>double(txtField.text!)代码>
它起作用了
在设置为“德国”的设备上,值将为25,00
但在这里我会得到这个错误:
Fatal error: Unexpectedly found nil while unwrapping an Optional value
(swift 5)
我的错在哪里?
谢谢 您需要使用NumberFormatter
来解析文本字段中的输入NumberFormatter
正确处理不同地区使用的不同十进制分隔符。另一方面,Double
初始化接受字符串
,不处理小数点以外的小数分隔符
NumberFormatter
也默认为用户的Locale
,因此在解析用户输入时不需要设置其Locale
属性
let numberFormatter = NumberFormatter()
if let numericInput = numberFormatter.number(from: txtField.text!)?.doubleValue {
// handle the `Double` value here
}
谢谢double是核心数据的正确格式,还是应该使用decimal?@Ghost108,这取决于您试图表示的值的类型。如果您试图表示十进制数(如价格),请使用decimal
。如果要表示非十进制浮点值,请使用Double