Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在swift中将UITextField转换为Float_Swift_Xcode - Fatal编程技术网

如何在swift中将UITextField转换为Float

如何在swift中将UITextField转换为Float,swift,xcode,Swift,Xcode,我试图转换一些数据类型,但在网上找不到任何有用的东西。有问题的数据类型是UITextField浮点型——我尝试过这样做,但不起作用 让BillTotalFormatted=Float(billTotal.text±0.0) 我得到的错误是:无法将“Double”类型的值转换为预期的参数类型“String” 我可以使用以下行强制展开值: 让BillTotalFormatted=Float(billTotal.text!),但听说这样做不安全,因为它可能会抛出错误。右括号位于错误的位置 let bi

我试图转换一些数据类型,但在网上找不到任何有用的东西。有问题的数据类型是UITextField浮点型——我尝试过这样做,但不起作用

让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
,尽管它是可选的。