2017-09-30 53 views
0

電気機器を使用するに要する費用を表示する簡単なプログラムを作成しました。プログラムはうまくいきます(私は速かったですが、ちょっとぎこちないですが)結果は小数点以下の数字がいくつか表示されますので、小数点以下2桁まで切り捨てようとしました。私は多くの運がない!私のコードは次のとおりです。私はhereを読んだから小数点以下2桁の小数点以下を切り捨てます

var pricePerkWh: Double = 13.426 
var watts: Double = 5.0 
var hours: Double = 730.0 
var KW: Double = watts/1000 
var kWh: Double = KW*hours 
var penceMonth: Double = kWh*pricePerkWh 
var poundMonth:Double = penceMonth/100 
var cost = poundMonth.roundTo(places: 2) 


print ("It will cost £\(cost) per month") 

roundTo(places: 2)使用されるが、これは誤り

error: Power Costs.playground:6:12: error: value of type 'Double' has no member 'roundTo' 
var cost = poundMonth.roundTo(places: 2) 

が生じている任意のポインタをいただければ幸いです!

+0

Leo Dabusが提供するリンクは、私の質問が重複していることを示しています。将来この問題に陥るかもしれない人たちのために、私は 'var cost:String = String(format:"%2f "、poundMonth)'を使うことができました。ありがとう。 – sark

答えて

3

ダブルは確かに何の方法roundTo(places:)を持っていない

感謝。それはあなたが最初に実装しなければならない方法です。 これを行うには、たとえばthis answerを参照してください。

それとも、あなたが別のメソッドを作成したくない場合は、あなたが直接(前述の答えに触発さ)これを行うことができます:

let cost = (poundMonth * 100).rounded()/100 

しかし: をあなたは丸めた値を必要としない場合それ以上の計算を行うが、それをユーザーに表示したい場合は、NumberFormatterを使用します。たとえば、ローカリゼーションも提供しています。 this answerを参照してください。

関連する問題