如何将UITextField中的数字转换为浮点数?

10 浏览
0 Comments

如何将UITextField中的数字转换为浮点数?

我有这段代码,其中长度和宽度被相乘,但我需要它们是'Float'而不是'整数'。

// 正方形的输出开始

@IBOutlet weak var LengthForSquare: UITextField!

@IBOutlet weak var WidthForSquare: UITextField!

@IBOutlet weak var ResultForSquare: UILabel!

// 正方形的输出结束

@IBAction func AnswerForSquarePressed(_ sender: Any) {

ResultForSquare.text = ((LengthForSquare.text! as NSString).floatValue * (WidthForSquare.text! as NSString).floatValue ).description

}

每次我尝试将'integerValue'转换为'float'时都会显示错误。如果有人可以帮助我解决这个问题,那就太好了。

0
0 Comments

问题的出现原因是需要将从UITextField获取到的数字转换为浮点数。解决方法是创建一个String和Int的扩展,然后使用计算属性来将字符串转换为Int、Float、Double和Bool类型。同时,还创建了一个Int的扩展,将Int类型转换为String、Float和Double类型。最后,在AnswerForSquarePressed函数中,将LengthForSquare和WidthForSquare两个UITextField中获取到的数字相乘,并将结果转换为字符串类型,并将其赋值给ResultForSquare的text属性。

0
0 Comments

从上述内容中可以看出,问题的出现原因是用户需要将UITextField中的数字转换为浮点数。解决方法是使用UITextField的扩展,添加一个名为floatValue的计算属性,通过NumberFormatter将文本转换为NSNumber,然后将NSNumber转换为浮点数。如果需要考虑地区设置,还可以使用NumberFormatter将浮点数转换为字符串。另外,还提到了一些注意事项,如变量命名应遵循小写字母开头的命名规范,可以强制解包UITextField的text属性,使用String(format:)进行格式化时应考虑地区等。

0
0 Comments

问题的原因是:在将UITextField中的字符串转换为浮点数时,如果字符串中包含普通数字(即不是货币等特殊格式),不需要使用数字格式化器。但是,如果用户输入的数字可能使用不同的格式,例如"3,14"或"1.234,56",则需要使用数字格式化器来处理。

解决方法是:使用Float()初始化器将输入的字符串转换为浮点数。在初始化器后面加上"?? defaultValue",可以为转换失败的情况提供默认值。这样,转换后的浮点数将始终包含一个值,而不需要进行解包。

如果不使用默认值,转换后的浮点数将需要进行解包才能访问其中的值。

可能需要向苹果提交一个问题报告,要么是将文档中指明只支持英式数字分隔,要么是更新初始化器以根据当前区域设置自动处理不同格式的数字分隔符。

0