string - 在 Swift 中将字符串转换为 float

标签 string floating-point swift string-parsing

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

我有两个 UITextfield,声明如下:

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

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

我知道如何通过这样做将它们转换为整数:

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

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

最佳答案

swift 2.0+

现在有了 Swift 2.0,您只需使用 Float(Wage.text) 即可返回 Float? 类型。比下面只返回 0 的解决方案更清晰。

如果出于某种原因您想要一个 0 值作为无效的 Float,您可以使用 Float(Wage.text) ?? 0 如果它不是有效的 Float,它将返回 0


旧解决方案

处理这个问题的最好方法是直接转换:

var WageConversion = (Wage.text as NSString).floatValue

我实际上创建了一个扩展来更好地使用它:

extension String {
    var floatValue: Float {
        return (self as NSString).floatValue
    }
}

现在您只需调用 var WageConversion = Wage.text.floatValue 并允许扩展程序为您处理桥接!

这是一个很好的实现,因为它可以处理实际的 float (使用 . 输入)并且还有助于防止用户将文本复制到您的输入字段中 (12p.34) >,甚至 12.12.41)。

显然,如果 Apple 确实向 Swift 添加了一个 floatValue,这将抛出一个异常,但同时它可能会很好。如果他们稍后添加它,那么修改代码所需要做的就是删除扩展,一切都会无缝运行,因为您已经调用了 .floatValue!

此外,变量和常量应该以小写开头(包括IBOutlets)

关于string - 在 Swift 中将字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24085665/

相关文章:

elasticsearch - 在 Elasticsearch 中使用 scaled_float 可以表示什么范围的数字?

ios - Swift 泛型类作为委托(delegate)

swift 中的 java.util.enumeration 等价物

java - java中如何按指定字符数将一个字符串拆分为多个字符串

c - 获取字符串直到第一个数字

android - 如何找出 Android 上的 TextView 中文本换行的行数?

Swift 协变泛型函数 : placeholder type is a subclass of another

php - 连接 php 字符串;使用 。运算符或双引号

c# - 将非常小的 double 转换为 SQL float 时出现问题

python - 将数组转换为列表时出现数值错误