如何currentRatio
将小数点后两位取整?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Answers:
使用格式字符串将其舍入到两位小数,然后将转换double
为String
:
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = String(format: "%.2f", currentRatio)
例:
let myDouble = 3.141
let doubleStr = String(format: "%.2f", myDouble) // "3.14"
如果要舍入最后一个小数位,可以执行以下操作(感谢Phoen1xUK):
let myDouble = 3.141
let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"
(Swift 4.2 Xcode 11) 易于使用的扩展程序:-
extension Double {
func round(to places: Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
使用:-
if let distanceDb = Double(strDistance) {
cell.lblDistance.text = "\(distanceDb.round(to:2)) km"
}
func round(to places: Int) -> Double {
已更新至SWIFT 4,并提供了该问题的正确答案
如果要舍入到小数点后2位,则应乘以100,然后将其四舍五入,然后除以100
var x = 1.5657676754
var y = (x*100).rounded()/100
print(y) // 1.57
考虑将NumberFormatter用于此目的,如果要打印比率的百分号或具有诸如货币和大数之类的内容,则它可以提供更大的灵活性。
let amount = 10.000001
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
let formattedAmount = formatter.string(from: amount as NSNumber)!
print(formattedAmount) // 10
对于像我这样的菜鸟来说,只是一个快速的后续答案:
通过使用带有输出的函数,可以使其他答案超级容易实现。例如
func twoDecimals(number: Float) -> String{
return String(format: "%.2f", number)
}
这样,只要您想将值保留到小数点后2位,只需键入
twoDecimals(“您的电话号码在这里”)
...
简单!
Ps也可以通过在String转换后再次将其转换为Float值或任何所需的值,如下所示:
func twoDecimals(number: Float) -> Float{
let stringValue = String(format: "%.2f", number)
return Float(stringValue)!
}
希望能有所帮助。
如果您给它234.545332233它会给您234.54
let textData = Double(myTextField.text!)!
let text = String(format: "%.2f", arguments: [textData])
mylabel.text = text
仅一行代码:
let obj = self.arrayResult[indexPath.row]
let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
currentRatio
到小数点后两位还是总是舍入?例如:您要3.141-> 3.14还是3.141-> 3.14?