我试图转换从UITextField取得的数字,我假设,实际上是字符串,并将它们转换为float,所以我可以乘以它们。
我有两个UITextfields声明如下:
@IBOutlet var wage: UITextField @IBOutlet var hour: UITextField
当用户按UIButton时,我想计算用户赚取的工资,但我不能,因为我需要先将它们转换为浮动,然后才能使用它们。
我知道如何将它们转换为整数这样做:
var wageConversion:Int = 0 wageConversion = wage.text.toInt()!
但是,我不知道如何将它们转换为浮动。
Swift 2.0
原文链接:https://www.f2er.com/swift/321433.html现在用Swift 2.0你可以只使用Float(Wage.text),它返回一个Float?类型。比下面的解决方案更清楚只返回0。
如果你想为一个无效的Float的值为某种原因你可以使用Float(Wage.text)? 0,如果它不是有效的浮动,它将返回0。
老解决方案
处理这个问题的最好方法是直接铸造:
var WageConversion = (Wage.text as NSString).floatValue
我实际上创建了一个扩展,以更好地使用这一点:
extension String { var floatValue: Float { return (self as NSString).floatValue } }
现在你可以调用var WageConversion = Wage.text.floatValue并允许扩展为你处理桥梁!
这是一个很好的实现,因为它可以处理实际的浮动(输入。),并且还有助于防止用户将文本复制到输入字段(12p.34,甚至12.12.41)。
显然,如果苹果添加一个floatValue到Swift这将抛出异常,但它可能是很好的在同一时间。如果他们以后添加它,那么所有你需要做的修改你的代码是删除扩展,一切都将无缝工作,因为你已经调用.floatValue!
另外,变量和常量应以小写开头(包括IBOutlets)