以下のプログラムで8割引きの値段が20円にならないのはなぜでしょうか?コンピューターでは二進法を使っているがゆえの宿命です。2のべき乗の和で表せない数値をコンピューターで扱う際、どうしても誤差が生じます。質問者さんのところでは、1-0.8は、「ぴったり」0.2になるのではなく、おそらく0.199999999......という、「0.2にきわめて近いが、ほんのわずかだけ小さい」数値なのでありましょう。いうわけで、それに100を掛けて整数部を取り出すと、19になるのです。]バグのないプログラムはない。プログラムは思ったとおりには動かない。8年前ちなみに、私のところで下記のプログラムを実行すると、0.20000000000000001000という結果を得ました。私が使っているコンパイラーでは、「たまたま」0.2よりほんの少しだけ大きい値となる、ということでありましょう。0;}バグのないプログラムはない。プログラムは思ったとおりには動かない。8年前90円70円50円もたまたま正解が表示されているだけです。書けば問題はありません。teika;printf("定価を入力してください。