乗算を使用する理由
float a= 1.0500000f;
float b= a*100.0f;
なぜ b は 104.99999 で 105.0 ではないのですか?
そして私が
int f= (int)b;
f は 104
乗算を使用する理由
float a= 1.0500000f;
float b= a*100.0f;
なぜ b は 104.99999 で 105.0 ではないのですか?
そして私が
int f= (int)b;
f は 104
浮動小数点数は無限に正確というわけではありません。浮動小数点数に関するウィキペディアのページは非常に興味深いものです。
2 番目の質問:(int)b
コンマの後にあるものはすべて切り捨てます。これは、あなたの場合、 に104.99999
なることを意味します104
。したがって、丸め誤差を作成して整数にキャストすると、実際には数値が小さくなるリスクがあります。