2017-02-23 9 views
3

次の点を考慮して、先行ゼロを削除して小数点以下3桁を保持するにはどうすればよいですか? savePercentageDecimalsは0.923を返します。ちょうどいいです.923二重計算から先行ゼロを削除するには?

//Figure out Save Percentage 
    let savePercentage = 12.0/(1.0 + 12.0) 
    let savePercentageDecimals = String(format: "%.3f",savePercentage) 

ありがとうございます!

+0

わからない場合。 'Double'を' String'に変換し、常に '0'と仮定して最初の' Character'を取り除くのはどうでしょうか? –

答えて

6

NumberFormatterは、数字を文字列として表示するときに使用するクラスです。あなたのケースでは、これは動作します:

let formatter = NumberFormatter() 
formatter.minimumIntegerDigits = 0 
formatter.minimumFractionDigits = 3 
formatter.maximumFractionDigits = 3 

let savePercentage = 12.0/(1.0 + 12.0) 
let savePercentageDecimals = formatter.string(from: NSNumber(value: savePercentage)) // .923 

上記minimumIntegerDigitsを使用することにより、それが主要な重要な数字を削除しません(> = 1):それを行うための何かがある

let moreThan100Percent = (12.0/(1.0 + 12.0)) + 1.0 
let formattedWithDecimals = formatter.string(from: NSNumber(value: moreThan100Percent)) // 1.923 
+0

クイックレスポンスのおかげで、素晴らしい作品です。ありがとうございました! –

関連する問題