두 정수 사이의 나누기 결과를 변수에 저장하고이를 파일에 표시하려고합니다. 하지만 % f과 작동하지 않습니다.파일에 float 변수를 표시하는 방법은 무엇입니까?
그리고 그 이유를 모르겠지만,이 두 가지 테스트와 나는 같은 결과하지 않은 :
코드 (C) :
int x1 = 830, y1 = 622;
int x2 = 540, y2 = 300;
float a = (y1 - y2)/(x1 - x2);
// test 1
fprintf(file, "test 1 : \n\n");
fprintf(file, "a = (%d - %d)/(%d - %d) \n", y1, y2, x1, x2);
fprintf(file, "a = %d/%d \n", y1 - y2, x1 - x2);
fprintf(file, "a = %f \n\n", (y1 - y2)/(x1 - x2));
// test 2
fprintf(file, "test 2 : \n\n");
fprintf(file, "a = %f \n\n", a);
결과 (내 파일) :
을test 1 :
a = (622 - 300)/(830 - 540)
a = 322/290
a = 0.000000
test 2 :
a = 1.000000
도움 주셔서 감사합니다. 당신은 소수점 연산 부동 실시합니다
fprintf(file, "a = %f", (float)(y1 - y2)/(float)(x1 - x2))
// ^^^^^^^ ^^^^^^^
그 방법 :
감사합니다. 하지만 "테스트 2"나는 부동 변수 "a"표시하려고 노력하고있어 파일에 정확한 값을 표시 할 수 없습니다 ... – bob12
@ bob12 만약 당신이 'a'를 계산하면, 같은 문제가 존재합니다 :'float a = (float) (y1 - y2)/(float) (x1 - x2); –