FloatValue与textField中的2位小数

在我的核心数据应用程序中,我从3个UITexFields保存3个浮点数。 要做到这一点,我不得不将它们转换为string。

现在的问题是,值被舍入为.0

我该怎么做?

 nyTankning.liter = (textFieldLiter.text as NSString).floatValue nyTankning.kronor = (textFieldKronor.text as NSString).floatValue nyTankning.literpris = (textFieldLiterpris.text as NSString).floatValue 

您的问题在于您正在尝试使用逗号“,”而不是“句点”。

 extension String { var converted: String { return fractionDigits() } var toDouble: Double { return NSNumberFormatter().numberFromString(self)!.doubleValue } var toFloat: Float { return NSNumberFormatter().numberFromString(self)!.floatValue } func fractionDigits(min:Int = 2, max:Int = 2)-> String { let styler = NSNumberFormatter() styler.minimumFractionDigits = min styler.maximumFractionDigits = max let converter = NSNumberFormatter() converter.decimalSeparator = "." if let result = converter.numberFromString(self) { return styler.stringFromNumber(result)! } else { converter.decimalSeparator = "," if let result = converter.numberFromString(self) { return styler.stringFromNumber(result)! } } return "" } } "1,1222".converted // "1.12" "2".converted // "2.00" "1,1222".converted.toDouble // 1.12 "2".converted.toDouble // 2.0 "1,1222".converted.toFloat // 1.12000000476837 "2".converted.toFloat // 2.0 "1.1222".converted // "1.12" "1.1222".converted.toDouble // 1.12 "1.254".converted.toFloat // 1.25 "1.254".fractionDigits(min: 1, max: 2) // "1.25" "1.2".fractionDigits(min: 1, max: 2) // "1.2" 

您可以使用NSString(format: "%.02f", nyTanking.liter)