在Swift中将字符串转换为Float

问题描述 投票:93回答:18

我正在尝试转换从UITextField中获取的数字(我认为它实际上是字符串,并将它们转换为Float,以便我可以将它们相乘。)>

我有两个UITextfield声明如下:

@IBOutlet var wage: UITextField
@IBOutlet var hour: UITextField

[当用户按下UIButton时,我想计算用户赚取的工资,但是我不能,因为我需要先将其转换为浮动工资,然后才能使用它们。

我知道如何通过执行以下操作将它们转换为整数:

var wageConversion:Int = 0
wageConversion = wage.text.toInt()!

但是,我不知道如何将它们转换为浮点数。

我正在尝试转换从UITextField中获取的数字(我认为这些数字实际上是字符串,并将它们转换为Float,所以我可以将它们相乘。我有两个UITextfields声明如下:...

string floating-point swift string-parsing
18个回答
191
投票

Swift 2.0+


2
投票

快速4


1
投票

您有两个非常相似的选项(根据方法和结果):


1
投票

Double()从一个Int构建一个Double,就像这样:


1
投票

[我发现了另一种方法来获取UITextField的输入值并将其转换为浮点数:


0
投票

这就是我的处理方法。我不想“过桥”,因为它已经从Xcode 6 beta 5中删除了,又快又脏:


0
投票

为了完整起见,这是使用UITextField扩展名的解决方案,它也可以考虑不同的语言环境。


0
投票

Swift 4/5,仅使用Float(value)。


-1
投票

使用此:


-3
投票

简易方式:


22
投票

例如,因为在世界的某些地区,使用逗号而不是小数。最好创建一个NSNumberFormatter来将字符串转换为float。


15
投票

我以这种方式将String转换为Float:


9
投票

更新


5
投票

使用接受的解决方案,我发现我的“ 1.1”(使用.floatValue转换时)将转换为1.10000002384186,这不是我想要的。但是,如果我改用.doubleValue,则将得到我想要的1.1。


5
投票

[下面将为您提供一个可选的Float,坚持一下!最后,如果您知道它是Float,则使用if / let。


3
投票
import Foundation
"-23.67".floatValue // => -23.67

let s = "-23.67" as NSString
s.floatValue // => -23.67

3
投票

[这是rdprado的答案中Paul Hegarty的解决方案的Swift 3改编,其中添加了一些对可选内容的检查(如果过程的任何部分失败,则返回0.0:]


3
投票
extension String {    
    func floatValue() -> Float? {
        return Float(self)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.