以下のコードの出力結果は「113」になると思ったのですが、実際は「112」であり、なぜそのような出力結果になるのかが分かりません。
C
1#include <stdio.h> 2 3int main() 4{ 5 printf("%d\n", (int)(1.13 * 100)); 6} 7 8// 出力結果 9// 112
また、以下のコードで int に変換する前の計算結果を確かめて、その計算結果そのものを int に変換してみました。
C
1#include <stdio.h> 2 3int main() 4{ 5 printf("%f\n", 1.13 * 100); 6 printf("%d\n", (int)113.000000); 7} 8 9// 出力結果 10// 113.000000 11// 113
この場合だと予想通りの出力結果である「113」が得られ、やはり最初のコードの出力が「112」になる理由が理解できません。
このような結果になる理由について教えていただきたいです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。