iOS Swift:消除CGFloat的尾随零
我有以.0或.5结尾的浮点值(例如10.0或10.5)。如果它以.0结尾,我想消除后面的零。在Swift中,最简单的方法是什么iOS Swift:消除CGFloat的尾随零,ios,swift,Ios,Swift,我有以.0或.5结尾的浮点值(例如10.0或10.5)。如果它以.0结尾,我想消除后面的零。在Swift中,最简单的方法是什么 func myFunction() { var string = pickerData[picker.selectedRowInComponent(0)] var float = ((string as NSString).floatValue - 45) / 2 label.text = float.description } 您应该使用NS
func myFunction() {
var string = pickerData[picker.selectedRowInComponent(0)]
var float = ((string as NSString).floatValue - 45) / 2
label.text = float.description
}
您应该使用NSNumberFormatter()将数字的格式设置为:
extension Double {
var formatted:String {
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
// you can set the minimum fraction digits to 0
formatter.minimumFractionDigits = 0
// and set the maximum fraction digits to 1
formatter.maximumFractionDigits = 1
return formatter.stringFromNumber(self) ?? ""
}
}
10.5.formatted // "10.5"
10.0.formatted // "10"
在您的情况下,它将如下所示:
label.text = float.formatted
您应该使用NSNumberFormatter()将数字的格式设置为:
extension Double {
var formatted:String {
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
// you can set the minimum fraction digits to 0
formatter.minimumFractionDigits = 0
// and set the maximum fraction digits to 1
formatter.maximumFractionDigits = 1
return formatter.stringFromNumber(self) ?? ""
}
}
10.5.formatted // "10.5"
10.0.formatted // "10"
在您的情况下,它将如下所示:
label.text = float.formatted
将其转换为Int?在数字不以尾随零结尾的情况下,我希望保留小数。转换为Int不能做到这一点。
label.text=(float==floorf(float))?“\(Int(float))”:“\(float)”
将其转换为Int?在数字不以尾随零结尾的情况下,我希望保留小数。转换为Int不能做到这一点。label.text=(float==floorf(float))?“\(Int(float))”:“\(float)”
您应该为变量选择更好的名称。我会把float改成myFloat,把string改成myString。谢谢你的建议。我通常为了发布而重命名变量。但我会接受你的建议。我如何在这里返回浮点而不是字符串?你应该为你的变量选择更好的名称。我会把float改成myFloat,把string改成myString。谢谢你的建议。我通常为了发布而重命名变量。但是我会接受你的建议。我如何在这里返回浮点而不是字符串?