重複の可能性:
浮動小数点値をC言語で整数で出力します
私はこのようなかなり単純なコードを試しています:
float a = 1.5;
printf("%d",a);
印刷し0
ます。ただし、1.4、1.21などの他の値の場合は、ガベージ値が出力されます。1.5だけでなく、1.25、1.5、1.75、1.3125(つまり、完全に2進数に変換できる10進数)の場合は、印刷され0
ます。この背後にある理由は何ですか?私はここで同様の投稿を見つけました、そして最初の答えは素晴らしい答えのように見えます、しかし私はそれを識別することができませんでした。なぜこれが起こっているのか、誰かが説明できますか?エンディアンネスはtと何の関係がありますか?