Не могу разобраться с работой типов float И double в C
Коллеги, добрый день! начал изучать C. Столкнулся с подобной проблемой. Есть простейший код
#include <stdio.h>
int main(void)
{
double a = 32.00000007;
printf("%Lf", a);
return 0;
}
По моему мнению после запуска программы в консоль должно выводиться исходное число 32.00000007
Однако, почему-то оно зануляется и вывод вот такой: 32.000000 В случае с short Это было понятно и объяснимо, но не пойму, чем вызвано подобное поведение с типом double
Ответы (2 шт):
Вы использовали %Lf, который предназначен для вывода значений типа long double. А ваша переменная double, не long double.
Попробуйте использовать %f или %lf. Можно даже точность вывода после запятой указать, например, %.<число знаков>f.
Ваш примерчик:
#include <stdio.h>
int main(void)
{
double a = 32.00000007;
printf("%.8f", a);
return 0;
}
У вас ввод 32+7*10^-8 а вывело у вас лишь 6 цифр после натурального. Для того, чтобы вывело 8 цифр (до позиции семёрки), нужно написать не printf("%Lf", a);
а printf("%.8f", a);
.