iOS Swift:消除CGFloat的尾随零

col*_*unn 1 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
}
Run Code Online (Sandbox Code Playgroud)

Leo*_*bus 6

您应该使用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"
Run Code Online (Sandbox Code Playgroud)

在你的情况下,它看起来像这样:

label.text = float.formatted
Run Code Online (Sandbox Code Playgroud)