仅显示带小数点的Double的小数部分

时间:2017-09-25 19:18:50

标签: ios swift double

我试图只显示数字的小数部分,但它会一直打印带小数点的数字:

号码223.50:

changeAmountLabel.text = "\(balance.truncatingRemainder(dividingBy: 1))"

这将打印.5,但需要打印的是50,有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

您只需要平衡余额并从中减去结果,然后将其乘以100.然后您可以根据需要格式化结果:

let balance =  223.50
let cents = (balance - floor(balance)) * 100
let formatted = String(format: "%.0f", cents)  // "50"

答案 1 :(得分:0)

您可以使用NumberFormatter

来完成此操作

试试这个:

let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 3


let number = 223.50
if let str = formatter.string(from: NSNumber(value: number)) as? String {
    if let range = str.range(of: ".") {
        let value = str.substring(from: range.upperBound)
        print(value) // 50
    }
}

Swift 4的更新:

if let str = formatter.string(for: number) {
    if let range = str.range(of: ".") {
        let value = str[range.upperBound...]
        print(value) // 50
    }
}