2015-01-20 2 views
0

임의의 정수 (99 사이)를 생성하여 문자열로 변환하고 블루투스를 통해 두 번째 시스템으로 성공적으로 전송 한 다음 두 번째 시스템에서 다시 정수로 변환하여 추가 처리합니다. 그러나 이후의 계산은 내가 사용하고 0의 답변 결과 : -숫자 변환 문제

str_int = strtol(buf, NULL, 10); 

하지만 다음에하려고 할 때 -

height = (str_int/100); 

대답은 내가 놓친 게 무엇 항상 0입니다 OpenGL 처리를 위해이 임의의 숫자를 -0.5에서 0.5 사이로 확장해야합니다.

height = (str_int/100.0); 

정수 나누기 C에서 항상 변수에 할당하기 전에 정수로 자릅니다 :

답변

2

가정 높이가 부동 또는 더블입니다. 숫자 끝에 .0을 넣으면 해당 숫자가 double으로 해석되기를 원하는 것으로 컴파일러에 알리므로 컴파일러는 표현식을 부동 소수점 나누기로 해석합니다.

+0

첫 번째 피연산자가 연산 유형을 결정하지 않는지 궁금합니다 ... –