我正在尝试转换从UITextField中获取的数字(我认为它实际上是字符串,并将它们转换为Float,以便我可以将它们相乘。)>
我有两个UITextfield
声明如下:
@IBOutlet var wage: UITextField
@IBOutlet var hour: UITextField
[当用户按下UIButton时,我想计算用户赚取的工资,但是我不能,因为我需要先将其转换为浮动工资,然后才能使用它们。
我知道如何通过执行以下操作将它们转换为整数:
var wageConversion:Int = 0
wageConversion = wage.text.toInt()!
但是,我不知道如何将它们转换为浮点数。
我正在尝试转换从UITextField中获取的数字(我认为这些数字实际上是字符串,并将它们转换为Float,所以我可以将它们相乘。我有两个UITextfields声明如下:...
快速4
您有两个非常相似的选项(根据方法和结果):
Double()
从一个Int构建一个Double,就像这样:
[我发现了另一种方法来获取UITextField的输入值并将其转换为浮点数:
这就是我的处理方法。我不想“过桥”,因为它已经从Xcode 6 beta 5中删除了,又快又脏:
为了完整起见,这是使用UITextField
扩展名的解决方案,它也可以考虑不同的语言环境。
Swift 4/5,仅使用Float(value)。
使用此:
简易方式:
例如,因为在世界的某些地区,使用逗号而不是小数。最好创建一个NSNumberFormatter来将字符串转换为float。
我以这种方式将String转换为Float:
更新
使用接受的解决方案,我发现我的“ 1.1”(使用.floatValue转换时)将转换为1.10000002384186,这不是我想要的。但是,如果我改用.doubleValue,则将得到我想要的1.1。
[下面将为您提供一个可选的Float,坚持一下!最后,如果您知道它是Float,则使用if / let。
import Foundation
"-23.67".floatValue // => -23.67
let s = "-23.67" as NSString
s.floatValue // => -23.67
[这是rdprado的答案中Paul Hegarty的解决方案的Swift 3改编,其中添加了一些对可选内容的检查(如果过程的任何部分失败,则返回0.0:]
extension String {
func floatValue() -> Float? {
return Float(self)
}
}