currentRatio
소수점 이하 두 자리 까지 반올림하려면 어떻게합니까 ?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
답변
형식 문자열을 사용하여 소수점 이하 두 자리까지 반올림하고 double
를 a 로 변환합니다 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"
}
답변
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
답변
Double을 여러 번 포맷하려면 위의 답변에 추가하면 아래와 같이 Double의 프로토콜 확장을 사용할 수 있습니다.
extension Double {
var dollarString:String {
return String(format: "$%.2f", self)
}
}
let a = 45.666
print(a.dollarString) //will print "$45.67"
답변
소수점 이하 특정 숫자의 코드는 다음과 같습니다.
var roundedString = String(format: "%.2f", currentRatio)
여기서 % .2f는이 숫자를 소수점 이하 2 자리로 반올림하도록 신속하게 알려줍니다.
답변
@Rounded , 신속한 5.1 속성 래퍼 예 :
struct GameResult {
@Rounded(rule: NSDecimalNumber.RoundingMode.up,scale: 4)
var score: Decimal
}
var result = GameResult()
result.score = 3.14159265358979
print(result.score) // 3.1416