我正在尝试将数字值转换为两位小数。但是当我将其转换为0.00时。数字是这个0.24612035420731018。当获得其.2f值时,它将显示0.00。我试过的代码是这样的,
let digit = FindResturantSerivce.instance.FindResModelInstance[indexPath.row].distance
let text = String(format: "%.2f", arguments: [digit])
print(text)
Run Code Online (Sandbox Code Playgroud)
dre*_*ter 20
如果您想真正舍入数字,而不仅仅是将其格式化为用于显示目的,则我更喜欢一些通用的东西:
extension Double {
func rounded(digits: Int) -> Double {
let multiplier = pow(10.0, Double(digits))
return (self * multiplier).rounded() / multiplier
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以执行以下操作:
let foo = 3.14159.rounded(digits: 3) // 3.142
Run Code Online (Sandbox Code Playgroud)
Md *_*vez 11
使用格式字符串将其舍入到小数点后两位,并将双精度数转换为字符串:
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = String(format: "%.2f", currentRatio)
Run Code Online (Sandbox Code Playgroud)
例:
let myDouble = 3.141
let doubleStr = Double(String(format: "%.2f", myDouble)) // 3.14
let myDouble = 3.141
let doubleStr = String(format: "%.2f", myDouble) // "3.14"
Run Code Online (Sandbox Code Playgroud)
如果要舍入最后一位小数,可以执行以下操作:
let myDouble = 3.141
let doubleStr = Double(String(format: "%.2f", ceil(myDouble*100)/100)) // 3.15
let myDouble = 3.141
let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7608 次 |
| 最近记录: |