-2

乗算を使用する理由

float a= 1.0500000f;
float b= a*100.0f;

なぜ b は 104.99999 で 105.0 ではないのですか?

そして私が

int f= (int)b;

f は 104

4

1 に答える 1

1

浮動小数点数は無限に正確というわけではありません。浮動小数点数に関するウィキペディアのページは非常に興味深いものです。

2 番目の質問:(int)bコンマの後にあるものはすべて切り捨てます。これは、あなたの場合、 に104.99999なることを意味します104。したがって、丸め誤差を作成して整数にキャストすると、実際には数値が小さくなるリスクがあります。

于 2014-04-10T13:33:08.680 に答える