Я там.
Я изучаю 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.2lf", change);
на
printf("Change is %4.2f", change);
, он работает, как ожидалось. Это почему? Двойники не форматируются как lf?