currentRatio
İki ondalık basamağa nasıl yuvarlayabilirim ?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
currentRatio
İki ondalık basamağa nasıl yuvarlayabilirim ?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Yanıtlar:
İki ondalık basamağa yuvarlak up bir biçim dizesi kullanın ve dönüştürmek double
a String
:
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = String(format: "%.2f", currentRatio)
Misal:
let myDouble = 3.141
let doubleStr = String(format: "%.2f", myDouble) // "3.14"
Son ondalık hanenizi yuvarlamak istiyorsanız, şöyle bir şey yapabilirsiniz (Phoen1xUK teşekkürler):
let myDouble = 3.141
let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"
(Swift 4.2 Xcode 11) Kullanımı basit Uzantı: -
extension Double {
func round(to places: Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
Kullanım: -
if let distanceDb = Double(strDistance) {
cell.lblDistance.text = "\(distanceDb.round(to:2)) km"
}
func round(to places: Int) -> Double {
SWIFT 4'e güncellendi ve soru için doğru cevap
2 ondalık basamağa yuvarlamak istiyorsanız, 100 ile çarpmanız, ardından yuvarlamanız ve ardından 100'e bölmeniz gerekir.
var x = 1.5657676754
var y = (x*100).rounded()/100
print(y) // 1.57
Bu amaçla NumberFormatter kullanmayı düşünün, oranın yüzde işaretini yazdırmak istiyorsanız veya para birimi ve büyük sayılar gibi şeyleriniz varsa daha fazla esneklik sağlar.
let amount = 10.000001
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
let formattedAmount = formatter.string(from: amount as NSNumber)!
print(formattedAmount) // 10
Double'ı birden çok kez biçimlendirmek istiyorsak yukarıdaki yanıta ekleyerek, aşağıdaki gibi Double'ın protokol uzantısını kullanabiliriz:
extension Double {
var dollarString:String {
return String(format: "$%.2f", self)
}
}
let a = 45.666
print(a.dollarString) //will print "$45.67"
Benim gibi çaylaklar için hızlı bir takip cevabı:
Çıktılı bir işlev kullanarak diğer yanıtları çok kolay uygulanabilir hale getirebilirsiniz . Örneğin
func twoDecimals(number: Float) -> String{
return String(format: "%.2f", number)
}
Bu şekilde, sadece yazdığınız 2 ondalık basamağa bir değer almak istediğinizde
twoDecimals (' Numaranız burada ')
...
Basit!
Ps Ayrıca , String dönüşümünden sonra aşağıdaki gibi tekrar dönüştürerek bir Float değeri veya istediğiniz herhangi bir şeyi döndürmesini sağlayabilirsiniz :
func twoDecimals(number: Float) -> Float{
let stringValue = String(format: "%.2f", number)
return Float(stringValue)!
}
Umarım yardımcı olur.
234.545332233 verirseniz size 234.54 verir
let textData = Double(myTextField.text!)!
let text = String(format: "%.2f", arguments: [textData])
mylabel.text = text
Yalnızca tek satırlık kod:
let obj = self.arrayResult[indexPath.row]
let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
currentRatio
iki ondalık basamağa mı yoksa her zaman yukarı yuvarlamak mı istiyorsunuz? Ör: 3.141 -> 3.14 veya 3.141 -> 3.14 ister misiniz?