currentRatio
小数点以下2桁に切り上げるにはどうすればよいですか?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
currentRatio
小数点以下2桁に切り上げるにはどうすればよいですか?
let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
回答:
フォーマット文字列を使用して小数点以下2桁に切り上げ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 {
SWIFT4と質問に対する適切な回答に更新されました
小数点以下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"
私のような初心者のための簡単なフォローアップの答え:
出力付きの関数を使用すると、他の回答を非常に簡単に実装できます。例えば
func twoDecimals(number: Float) -> String{
return String(format: "%.2f", number)
}
このように、小数点以下2桁までの値を取得する場合は、入力するだけです。
twoDecimals( 'ここにあなたの番号')
..。
シンプル!
Ps次のように文字列変換後に再度変換することで、Float値または必要な値を返すようにすることもできます。
func twoDecimals(number: Float) -> Float{
let stringValue = String(format: "%.2f", number)
return Float(stringValue)!
}
お役に立てば幸いです。
たった1行のコード:
let obj = self.arrayResult[indexPath.row]
let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
currentRatio
2桁まで、または常にラウンドアップ?例:3.141-> 3.14または3.141-> 3.14が必要ですか?