double d;
scanf("%f", &d);
printf("%f", d);
результат:
ввод: 10,3
выход: 0.00000
Почему? Я думаю, что на выходе должно быть 10,3 Visual Studio 2008.
double d;
scanf("%f", &d);
printf("%f", d);
результат:
ввод: 10,3
выход: 0.00000
Почему? Я думаю, что на выходе должно быть 10,3 Visual Studio 2008.
Для scanf()
, %f
- для float
. Для double
вам нужно %lf
. Так,
#include <stdio.h>
main() {
double d;
scanf("%lf", &d);
printf("%f\n", d);
}
при вводе 10.3
выдает 10.300000
.
%lf
необходим для scanf()
, но для printf()
%f
означает double
(и работает также с float
, потому что float
повышается до double
в переменной части списка аргументов). %lf
не имеет смысла для printf()
.
- person caf; 07.03.2010
Попробуйте заменить %f
на %lf
. %f
используется при работе с float
, а не double
. (или, как вариант, вы можете сделать d
a float
).