이상한 문제가 있습니다. 여기 내 코드의 일부이다 :
1100 * 0.03 = 33 : temp
= 정수플로어 대 int 캐스트 차이
int temp=1100;
int foo=floor(0.03*temp);
int foo1=0.03*temp;
if(foo-foo1){
cout<<foo<<endl;
cout<<foo1<<endl;
}
3 % 인 경우는 foo
예 1.
의해 foo1
다르다. foo
= 33 foo1
= 32. 또한
내가 그런 식으로 작성하는 경우 :
int foo=floor(0.03*1100);
int foo1=0.03*1100;
는 그런 문제가 없다.
왜?
int 형으로 변환 floor()는 항상 반올림 (음의 무한대 방향)하는 반면, – Leon
어떤 컴파일러를 사용하고 있습니까? 여기에서 재현 할 수 없습니다 : http://coliru.stacked-crooked.com/a/2df015f881f60122 – alain
코드 블록 16.01 –