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

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

数量223.50:

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

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

您可以使用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 } } 

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

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