iOS Swift:消除CGFloat的尾随零

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

我有以.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
}

您应该使用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。谢谢你的建议。我通常为了发布而重命名变量。但是我会接受你的建议。我如何在这里返回浮点而不是字符串?