Object-Cの割り算でハマった

Posted 2010年6月20日 | Auther dada | Category PC・デジタル | Tag タグ: ,
Twitterにツイートする Facebookでシェアする はてなブックマーク

もんのすごい単純なことでドハマりました…。

float floatNum = 128 / 255;
NSLog(@"%f", floatNum);  // 結果は「0.0000〜」
float floatNum = 128.0 / 255.0;
NSLog(@"%f", floatNum);  // 結果は「0.501960〜」

小数点のついた値でないと切り捨てられちゃうのかーーーー!!!
c言語ってのはそういうもんなんですか?

しかし整数で格納している値を計算して小数点を出したい時は
どうやって「.0」をつければいいんだろう…。

int intNum = 10;
float floatNum = intNum;
NSLog(@"%f", floatNum/50);  // 結果は「0.2000〜」

なるほど、いったん float型に代入すればいいのか。
って、めんどくさいw

関連する記事

3 Comments »

  1. 他にはcastを使うとか。

    int intNum = 10;
    NSLog(@”%f”, (float)intNum / 50);

    コメント by y_shigenari — 2010年6月20日 @ 9:21 AM

  2. 整数同士の演算が整数になるのは C の仕様ですね。Java とかもそうですよ。

    代入しなくてもキャストすればいいです>実数化

    (float)intNum / 50

    まあ、その例の場合だと、intNum / 50.0 でいいんですが。
    自動的に計算対象をあわせてから計算されます。

    コメント by ごう — 2010年6月20日 @ 1:04 PM

  3. なるほど!キャストは思いつきませんでした。
    結構使っているのに^^;

    コメント by ダダ — 2010年6月22日 @ 7:17 PM

Leave a comment

カテゴリー