float 변수를 0에서 100 사이의 값으로 변환하려고합니다. 부동 소수점은 항상 양수입니다. 해당 정수 값은 32 비트 부동 소수점의 최대 값과 비교 된 부동 소수점 값의 크기를 반영해야합니다. 0.0은 0으로 변환되고 3.402823466 E + 38은 100으로 변환됩니다.float 값을 C에서 0-100으로 스케일하는 함수
여기가 지금까지 내가 가지고 있지만, 0이 아닌 입력에 대한 출력으로 -1이 계속 유지됩니다.
int convFloat(float x){
int y;
y = (int) (x/3.4e38) * 100;
return y;
}
여기서 내가 뭘 잘못하고 있니?
당신은 3.4e36''으로 나눌 필요가있다. 그렇다면 100을 곱할 필요가 없으며 중간 결과를 보킹 할 위험이 없습니다. –