私は奇妙な問題があります。ここに私のコードの一部です:フロアとintキャストの違い
int temp=1100;
int foo=floor(0.03*temp);
int foo1=0.03*temp;
if(foo-foo1){
cout<<foo<<endl;
cout<<foo1<<endl;
}
temp
=整数の3%の場合、foo
は、例えば1
によってfoo1
異なります
1100 * 0.03 = 33。 foo
= 33 foo1
= 32。
int foo=floor(0.03*1100);
int foo1=0.03*1100;
そのような問題はありません:私はそのように書いた場合に加えて
。
なぜですか?
になるだろう床 'に対し、ゼロに向けて丸め、()'は常に(負の無限大に向かって)切り捨てここでそれを再現することはできませんコンパイラを使用している – Leon
:?http://coliru.stacked-crooked.com/a/2df015f881f60122 – alain
コードをブロック16.01 –