나는 거기에있다.두 배로 된 C 잘못된 결과 결과
내가 C를 배우고 나는이 코드를 가지고 :이 코드
#include <stdio.h>
#include <stdlib.h>
int main()
{
double buyval, deliveredval, change;
printf("What's the buy value? ");
scanf("%lf", &buyval);
do{
printf("What's the value delivered? ");
scanf("%lf", &deliveredval);
if (deliveredval < buyval){
printf("Delivered value must be greater then buy value \n\n");
}
} while (deliveredval < buyval);
change = deliveredval - buyval;
printf("Change is %4.2lf", change);
return 0;
}
을, 마지막 인쇄는 항상 0.00하지만
printf("Change is %4.2f", change);
에
printf("Change is %4.2lf", change);
을 변경할 수있다
예상대로 작동합니다. 왜 그런가요? 복식은 형식이 지정되지 않았습니까?
감사합니다. 그리고 scanf에서 % lf 대신 % f를 사용해야합니까? – Favolas
'long double '에'% Lf'가 사용됩니다. '% lf'는 C99 표준에 따라 printf에서'% f'와 같아야합니다. – interjay
아니요,'scanf'에서'% f'는'float'을위한 것이고,'% lf'은 두번째를위한 것입니다. ('% llf'을 사용하여 long double을 스캔하십시오.) – asaelr