在Swift中将String转换为Float
我正在尝试转换从UITextField中获取的数字(我认为这些数字实际上是字符串),并将其转换为Float,因此我可以将它们相乘。
我有两个UITextfield
声明如下:
@IBOutlet var wage: UITextField@IBOutlet var hour: UITextField
当用户按下UIButton时,我想计算用户赚取的工资,但是我不能,因为我需要先将其转换为浮动工资,然后才能使用它们。
我知道如何通过执行以下操作将它们转换为整数:
var wageConversion:Int = 0wageConversion = wage.text.toInt()!
但是,我不知道如何将它们转换为浮点数。
回答:
迅捷2.0+
现在,在 您可以仅使用Float(Wage.text)
return
Float?
类型。比下面返回的解决方案更清晰0
。
如果出于某种原因想要0
无效值,则Float
可以使用Float(Wage.text) ?? 0
该值,如果无效则返回0
该值Float
。
旧解决方案
解决此问题的最佳方法是直接投射:
var WageConversion = (Wage.text as NSString).floatValue
我实际上也创建了一个extension
更好地使用它的方法:
extension String { var floatValue: Float {
return (self as NSString).floatValue
}
}
现在,您可以呼叫var WageConversion = Wage.text.floatValue
并允许分机为您处理网桥!
这是一个很好的实现,因为它可以处理实际的浮点数(使用进行输入.
),并且还有助于防止用户将文本复制到您的输入字段(12p.34
或什至12.12.41
)中。
显然,如果Apple确实floatValue
在Swift
中添加了,则会抛出异常,但与此同时可能会很好。如果他们稍后添加了它,那么只需修改扩展名,您只需要做的就是删除扩展名,一切将无缝进行,因为您已经在调用了.floatValue
!
另外,变量和常量应以小写字母开头(包括IBOutlets
)
以上是 在Swift中将String转换为Float 的全部内容, 来源链接: utcz.com/qa/432102.html