2017-12-18 12 views
0

私は2つの2倍を使って価格を計算していますが、出力すると1.785e-05のように科学的表記として返すようです。しかし、これはどのように私はこれを8小数で出力し、科学的表記法ではないことを確認するのですか?計算された二重帰還科学記法

CODE

let price = tickerObj.price ?? 0 
let quantity = Double(self.activeTextField.text ?? "0") ?? 0 
let value = quantity/price 

topValueField.text = "\(value.rounded(toPlaces: 8))" 

ROUNDのEXTENSION

extension Double { 
    /// Rounds the double to decimal places value 
    func rounded(toPlaces places:Int) -> Double { 
     let divisor = pow(10.0, Double(places)) 
     return (self * divisor).rounded()/divisor 
    } 
} 
+0

'NumberFormatter'を使用します。 –

+1

' value'の実際の値は何ですか? – rmaddy

答えて

0

数自体は、科学的表記法として正しいです。書式設定された数値をユーザーに提示する場合は、文字列でなければなりません。 NumberFormatterを使用した作業コードは次のとおりです。

extension Double { 
    /// Rounds the double to decimal places value 
    func rounded(toPlaces places:Int) -> String? { 
     let fmt = NumberFormatter() 
     fmt.numberStyle = .decimal 
     fmt.maximumFractionDigits = places 
     return fmt.string(from: self as NSNumber) 
    } 
} 

let price = tickerObj.price ?? 0 
let quantity = Double(self.activeTextField.text ?? "0") ?? 0 
let value = quantity/price 

topValueField.text = "\(value.rounded(toPlaces: 8) ?? "Unknown")" 
+1

'rounded(toPlaces:)'という名前のメソッドの場合、実際には「二重小数点以下を丸める」というコメントが必要だと思いますか? – Alexander

+0

@Alexanderは彼の名前であって、私のものではありません。 –