如何在swift中将UITextField转换为Float
我试图转换一些数据类型,但在网上找不到任何有用的东西。有问题的数据类型是UITextField浮点型——我尝试过这样做,但不起作用如何在swift中将UITextField转换为Float,swift,xcode,Swift,Xcode,我试图转换一些数据类型,但在网上找不到任何有用的东西。有问题的数据类型是UITextField浮点型——我尝试过这样做,但不起作用 让BillTotalFormatted=Float(billTotal.text±0.0) 我得到的错误是:无法将“Double”类型的值转换为预期的参数类型“String” 我可以使用以下行强制展开值: 让BillTotalFormatted=Float(billTotal.text!),但听说这样做不安全,因为它可能会抛出错误。右括号位于错误的位置 let bi
让BillTotalFormatted=Float(billTotal.text±0.0)
我得到的错误是:无法将“Double”类型的值转换为预期的参数类型“String”
我可以使用以下行强制展开值:
让BillTotalFormatted=Float(billTotal.text!)
,但听说这样做不安全,因为它可能会抛出错误。右括号位于错误的位置
let billTotalFormated = Float(billTotal.text!) ?? 0.0
允许强制展开
UITextField
的text
属性,但您必须检查字符串是否可以转换为Float
在Float(billTotal.text!)
中执行的强制展开是检查billTotal
文本字段是否包含任何文本。您可以先检查billTotal
是否包含文本,然后再安全地将其展开
在let BillTotalFormatted=Float(billTotal.text??0.0)
中执行的nil合并运算符的目的是将文本字段中的任何无效字符串替换为0.0
if billTotal.text.isEmpty == false {
// The text field contains something. Now try and get the value from it.
billTotalFormated = Float(billTotal.text!) ?? 0.0
else {
// Tell the user that the text field has an invalid value.
我建议您定义float变量。然后检查文本字段中的值是否为空。您可以执行以下操作
var float: Float = 0.0
if let text = billTotal.text {
float = Float(text) ?? 0.0
}
您正在从字符串转换为浮点,因此:
let billTotalFormated = Float(billTotal.text ?? "")
由于textfield返回可选字符串,因此使用此语法是允许的,但可能会崩溃,具体取决于调用它的时间以及billTotal.text是否为nil。我的建议是浮动(billTotal.text??)??0.0,每次至少产生一个有效的浮点。@a\u hausb不,它不会崩溃。
UITextField
(与UILabel
不同)的text
属性永远不会是nil
,尽管它是可选的。