web-dev-qa-db-ja.com

小数点以下2桁に切り上げます

currentRatioを小数点以下2桁に切り上げるにはどうすればよいですか?

let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
43
Del Hinds

書式文字列を使用して、小数点以下2桁に切り上げ、doubleStringに変換します。

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"
107
JAL

Swift 4に更新され、質問に対する適切な回答

小数点以下2桁に切り上げたい場合は、100で乗算し、四捨五入してから100で除算する必要があります。

var x = 1.5657676754 
var y = (x*100).rounded()/100
print(y)  // 1.57 
14
Chetan Rajagiri

Doubleを複数回フォーマットする場合、上記の回答に追加して、以下のようにDoubleのプロトコル拡張を使用できます。

extension Double {
    var dollarString:String {
        return String(format: "$%.2f", self)
    }
}

let a = 45.666

print(a.dollarString) //will print "$45.67"
10
Ankit garg

この目的で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
8

(Swift 4.2 Xcode 10)拡張機能の使用が簡単:-

extension Double {
    func roundTo(places:Int) -> Double {
        let divisor = pow(10.0, Double(places))
        return (self * divisor).rounded() / divisor
    }
}

使用:-

if let distanceDb = Double(strDistance) {
   cell.lblDistance.text = "\(distanceDb.roundTo(places:2)) km"
}
8
Mehul

小数点以下の特定の数字のコードは次のとおりです。

var roundedString = String(format: "%.2f", currentRatio)

ここで、%。2fはSwiftに、この数値を小数点以下2桁に丸めるよう指示します。

4
Ramazan Karami
String(format: "%.2f", Double(round(1000*34.578)/1000))

出力:34.58

2
Shobhit C

ほんの1行のコード:

 let obj = self.arrayResult[indexPath.row]
 let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
0

234.545332233を与えると234.54を与える

let textData = Double(myTextField.text!)!
let text = String(format: "%.2f", arguments: [textData])
mylabel.text = text
0
Akbar Khan