Làm cách nào để làm tròn currentRatio
đến hai chữ số thập phân?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Làm cách nào để làm tròn currentRatio
đến hai chữ số thập phân?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Câu trả lời:
Sử dụng một chuỗi định dạng để lên tròn đến hai chữ số thập phân và chuyển đổi double
đến một String
:
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = String(format: "%.2f", currentRatio)
Thí dụ:
let myDouble = 3.141
let doubleStr = String(format: "%.2f", myDouble) // "3.14"
Nếu bạn muốn làm tròn số thập phân cuối cùng của mình, bạn có thể làm như sau (cảm ơn Phoen1xUK):
let myDouble = 3.141
let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"
(Swift 4.2 Xcode 11) Tiện ích mở rộng dễ sử dụng: -
extension Double {
func round(to places: Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
Sử dụng:-
if let distanceDb = Double(strDistance) {
cell.lblDistance.text = "\(distanceDb.round(to:2)) km"
}
func round(to places: Int) -> Double {
Đã cập nhật thành SWIFT 4 và câu trả lời thích hợp cho câu hỏi
Nếu bạn muốn làm tròn đến 2 chữ số thập phân, bạn nên nhân với 100, sau đó làm tròn và chia cho 100
var x = 1.5657676754
var y = (x*100).rounded()/100
print(y) // 1.57
Cân nhắc sử dụng NumberFormatter cho mục đích này, nó cung cấp tính linh hoạt hơn nếu bạn muốn in dấu phần trăm của tỷ lệ hoặc nếu bạn có những thứ như tiền tệ và số lớn.
let amount = 10.000001
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
let formattedAmount = formatter.string(from: amount as NSNumber)!
print(formattedAmount) // 10
Thêm vào câu trả lời trên nếu chúng ta muốn định dạng Double nhiều lần, chúng ta có thể sử dụng phần mở rộng giao thức của Double như bên dưới:
extension Double {
var dollarString:String {
return String(format: "$%.2f", self)
}
}
let a = 45.666
print(a.dollarString) //will print "$45.67"
Chỉ là một câu trả lời tiếp theo cho những người không thích như tôi:
Bạn có thể thực hiện các câu trả lời khác một cách siêu dễ dàng bằng cách sử dụng một hàm có đầu ra . Ví dụ
func twoDecimals(number: Float) -> String{
return String(format: "%.2f", number)
}
Bằng cách này, bất cứ khi nào bạn muốn lấy một giá trị đến 2 chữ số thập phân, bạn chỉ cần nhập
twoDecimals (' Số của bạn ở đây ')
...
Các mẫu!
Ps Bạn cũng có thể làm cho nó trả về giá trị Float hoặc bất kỳ thứ gì bạn muốn, bằng cách chuyển đổi lại sau khi chuyển đổi Chuỗi như sau:
func twoDecimals(number: Float) -> Float{
let stringValue = String(format: "%.2f", number)
return Float(stringValue)!
}
Hy vọng rằng sẽ giúp.
nếu bạn cho nó 234.545332233 nó sẽ cho bạn 234.54
let textData = Double(myTextField.text!)!
let text = String(format: "%.2f", arguments: [textData])
mylabel.text = text
Chỉ một dòng mã:
let obj = self.arrayResult[indexPath.row]
let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
currentRatio
đến hai chữ số thập phân hay luôn làm tròn? Ví dụ: bạn muốn 3,141 -> 3,14 hay 3,141 -> 3,14?