2014-09-19 4 views
-3

아래 프로그램은 형식 지정자가 부동 소수점 형식이지만 value = 0.000000을 반환합니다.부동 소수점 연산은 값 = 0을 산출합니다.

#include <stdio.h> 
int main() 
{ 
     printf ("%f", 5/9); 
     return 0; 
} 
+0

'정수 분할 때,/연산자의 결과는 어떤 부분 부분 대수 지수가 discarded'입니다'5.0' –

답변

3

표현식 5/9에는 두 개의 정수 인수가 있으므로 사용 된 정수 나누기로 평가됩니다. 따라서 결과는 0입니다.

int%f 형식 지정자로 전달하여 정의되지 않은 동작을 호출합니다.

printf("%f", 5.0/9.0); 
1
printf ("%f", 5/9); 

5/9 정수 분할 인 : 부동 소수점 값

변경 피연산자들 중 적어도 하나가 부동 소수점 나눗셈을 사용한다. 표현식은 int이지만, ffloat 또는 double 인수가 필요합니다.

변경에 대한 호출 :

printf ("%f", 5/9.0); 

는 부동 소수점 부문을 수행하고 double 인수를 가지고 있습니다.

0

59은 정수입니다. 두 정수의 나눗셈은 항상 정수가됩니다. 그들 중 하나에게 플로트 또는 확인 더블

printf ("%f", 5.0/9); 

또는

printf ("%f", 5/9.0); 
+2

및 '9.0'은'float'이 아니며'double''입니다 – mch

+0

수정 해 주셔서 감사합니다 :) –