Swift - 如果小数等于 0,如何从浮点数中删除小数? [英] Swift - How to remove a decimal from a float if the decimal is equal to 0?

查看:34
本文介绍了Swift - 如果小数等于 0,如何从浮点数中删除小数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在显示一个小数点的距离,如果它等于 0(例如:1200.0Km),我想删除这个小数点,我怎样才能快速做到这一点?我这样显示这个数字:

I'm displaying a distance with one decimal, and I would like to remove this decimal in case it is equal to 0 (ex: 1200.0Km), how could I do that in swift? I'm displaying this number like this:

let distanceFloat: Float = (currentUser.distance! as NSString).floatValue
distanceLabel.text = String(format: "%.1f", distanceFloat) + "Km"

推荐答案

Swift 3/4:

var distanceFloat1: Float = 5.0
var distanceFloat2: Float = 5.540
var distanceFloat3: Float = 5.03

extension Float {
    var clean: String {
       return self.truncatingRemainder(dividingBy: 1) == 0 ? String(format: "%.0f", self) : String(self)
    }
}

print("Value (distanceFloat1.clean)") // 5
print("Value (distanceFloat2.clean)") // 5.54
print("Value (distanceFloat3.clean)") // 5.03

Swift 2(原始答案)

let distanceFloat: Float = (currentUser.distance! as NSString).floatValue
distanceLabel.text = String(format: distanceFloat == floor(distanceFloat) ? "%.0f" : "%.1f", distanceFloat) + "Km"

或作为扩展:

extension Float {
    var clean: String {
        return self % 1 == 0 ? String(format: "%.0f", self) : String(self)
    }
}

这篇关于Swift - 如果小数等于 0,如何从浮点数中删除小数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆