0
두 자리 숫자를 나눠서 두 개의 다른 변수로 결과를 얻으려고합니다. 특정 번호의 문제가 발생했습니다 : 23
.두 자리 숫자를 나눕니다.
int root = 23;
float div = (float)root/10.0; // div = 23.0/10.0 = 2.3
int left = (int)div; // left = 2
int right = ((float)div - (float)left) * 10.0; // right = (2.3 - 2) * 10.0 = 0.3 * 10.0 = 3
printf("%d", right); // 2, why ?
float-to-int 연산이 많으며 최종 결과에 약간의 문제가 있습니다. 나는 놓치거나 뭔가 잡지 않았는가?
OMG,'A = 루트/10; b = root % 10;' – 0andriy
10.0이 때로는 int로 해석되기 때문에 두 번째 숫자를 변환하여 simmilar 문제가 발생했다는 것을 약간 기억합니다. 다시 작성해보십시오 :'float div = (float) root/(부동 (float)) 10.0; // div = 23.0/10.0 = 2.3' – pytomaniaq
참고로 - 보통 정확하지 않은 수레는 피하는 것이 가장 좋습니다. –