我想只顯示一個數的小數部分雙小數部分,但它使打印數小數點:只顯示小數點
對數223.50:
changeAmountLabel.text = "\(balance.truncatingRemainder(dividingBy: 1))"
這將打印.5,但需要打印的是50,有沒有辦法做到這一點?
我想只顯示一個數的小數部分雙小數部分,但它使打印數小數點:只顯示小數點
對數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
}
}
更新斯威夫特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"
它小數點前轉換爲字符串,並刪除部分。這是做到這一點的唯一方法。 – Sulthan
@Sulthan你會怎麼做,沒有小數點? – SwiftyJD
@SwiftyJD以'.'分隔並以結尾 – TNguyen