Ios 仅显示带小数点的双精度小数部分
我试图只显示数字的小数部分,但它会一直打印带有小数点的数字: 对于223.50号:Ios 仅显示带小数点的双精度小数部分,ios,swift,double,Ios,Swift,Double,我试图只显示数字的小数部分,但它会一直打印带有小数点的数字: 对于223.50号: changeAmountLabel.text = "\(balance.truncatingRemainder(dividingBy: 1))" 这将打印。5,但需要打印的是50,有什么方法可以做到这一点吗?您只需将余额降至最低,并从中减去结果,然后将其乘以100。之后,您可以根据需要格式化结果: let balance = 223.50 let cents = (balance - floor(balanc
changeAmountLabel.text = "\(balance.truncatingRemainder(dividingBy: 1))"
这将打印。5,但需要打印的是50,有什么方法可以做到这一点吗?您只需将余额降至最低,并从中减去结果,然后将其乘以100。之后,您可以根据需要格式化结果:
let balance = 223.50
let cents = (balance - floor(balance)) * 100
let formatted = String(format: "%.0f", cents) // "50"
你只需要把你的平衡降到最低,然后减去结果,然后乘以100。之后,您可以根据需要格式化结果:
let balance = 223.50
let cents = (balance - floor(balance)) * 100
let formatted = String(format: "%.0f", cents) // "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
}
}
您可以使用
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
}
}
将其转换为字符串并删除小数点之前的部分。这是唯一的方法。@Sulthan没有小数点你怎么能做到呢?@SwiftyJD按
拆分,取尾端将其转换为字符串并删除小数点之前的部分。这是唯一的办法。@Sulthan没有小数点你怎么能做到呢?@SwiftyJD被
分割,并以我赢的结尾kkk为3秒。如果你不指定区域设置,就不要这样做了”可能是千分组分隔符您必须为格式化程序设置区域设置或使用当前区域设置中的十进制分隔符。这将导致整数为“00”。kkk我赢了3秒。如果您不指定区域设置,请注意“可能是千分组分隔符必须为格式化程序设置区域设置或使用当前区域设置的十进制分隔符。这将导致整数为“00”。