Objective-cの参考書の練習問題で回答を見てもわからないところがあります


定価と割引率から販売価格を求めるプログラムです。

@interface Product : NSObject{
@private
 int price;
 float disRate;
}
@property int price;
@property float disRate;
@end

@implementation Product
- (int) getSellingPrice{
 return price * (1-disRate/100)
}
@synthesize price, disRate;
@end

これが参考書にのっている回答です。
しかし
 return price * (1-disRate/100)
この部分は型名を指定しなくてもいいのでしょうか?
 return (int) price * (1-(float)disRate/100)
こっちが正解ではないのでしょうか?

おそらく参考書の回答なので間違えているのは私なのですが
理解できないので質問しました。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/10/31 09:40:03

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

>price * (1-disRate/100)
 
intとfloatではfloatのほうが高精度なので結果はfloatになります。
 
>(int) getSellingPrice
 
returnはintにキャストされますので、
この関数の返す値は小数点以下を切り捨てられたintになります。

id:TaMu

回答ありがとうございました!

2012/11/03 11:37:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません