2016-04-22 23 views
0

私はこれにいくつかの助けに感謝したいと思います。メソッドが値を正しく計算して表示していませんか?

たとえば、私のコードは次のとおりです。

class Candy extends DessertItem 
{ 
double weight; 
double price; 
Candy(String n, double w, double p) 
{ 
super(n); 
weight = w; 
price = p; 
} 
public double getCost() 
{ 
double cost = weight*price; 
int costinCents = (int)cost*100; 
cost = costinCents /100.0; 
return cost; 
} 
public String toString() 
{ 
return name+"\t\t\t\t$" + getCost() + "\n\t" + weight + " lbs @ $" + price; 
} 
} 

、出力は次のとおりです。

Peanut Butter Fudge    $8.0 
    2.25 lbs @ $3.99 

は、なぜそれが$ 8.0の代わりに$ 8.97を表示していますか?

助けていただけたら幸いです!ありがとう。

+1

'(int)cost * 100;'とは何と思いますか? – Savior

+0

おっと、私の間違い。小数点以下2桁まで表示するにはどうすればいいですか? – emansour619

+1

http://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java – Savior

答えて

0

試しint costinCents = (int) (cost*100)

具体例:コストで = 3.5 ==>(INT)コスト* 100 = 300コストに

= 3.5 ==>(INT)(コスト* 100)= 350

+0

入手しました。どうすれば$ 8.977500000000001の代わりに$ 8.97を表示することができますか? 上記のリンクを.2%で使用しようとしましたが、戻り値を使用していてsystem.outを使用していないため動作しませんでした。 – emansour619

+0

これを参照してください: http://stackoverflow.com/questions/2538787/how-to-display-an-output-of-float-data-with-2-decimal-places-in-java –

+0

私はそれを見ましたしかし、私はそれを復帰声明にどのように解釈するのだろうか? 返品名+ "\ t \ t \ t \ t $" + getCost()+ "\ n \ t" +重量+ "lbs @ $" +価格; – emansour619

関連する問題