タグ

programingに関するyrgnah_yatsのブックマーク (1)

  • 整数値の割算

    C言語を使っていると,C言語の初心者でなくても,陥り易い罠がある.その一つが整数値の割算である. 次のプログラムは「 1000 の 50% はいくら?」の答えを出力するためのものである. main() { printf("%d\n", 50 / 100 * 1000); } 正解は 500 のはずであるが,このプログラムは 0 と出力する.その理由は, 50 / 100 の割算にある. C言語では,整数同士の割算の結果は,割算の商となる.すなわち,小数点以下は切り捨てられる.したがって, 50 / 100 は 0 となるのである.それに 1000 を掛けても,結果は 0 のままである. 数値演算は左から行われるので,上のような計算の場合には,割算を最後に持って来て, printf("%d\n", 1000 * 50 / 100); とすれば,期待する結果を得ることができる. また,割算をし

    yrgnah_yats
    yrgnah_yats 2009/02/03
    C言語では,整数同士の割算の結果は,割算の商となる.すなわち,小数点以下は切り捨てられる.したがって, 50 / 100 は 0
  • 1