Не могу разобраться с работой типов 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 шт):

Автор решения: Evgeniy Leonidov

Вы использовали %Lf, который предназначен для вывода значений типа long double. А ваша переменная double, не long double.

Попробуйте использовать %f или %lf. Можно даже точность вывода после запятой указать, например, %.<число знаков>f.

Ваш примерчик:

#include <stdio.h>
int main(void)
{
    double a = 32.00000007;
    printf("%.8f", a); 
    return 0;   
}
→ Ссылка
Автор решения: Calcium-X

У вас ввод 32+7*10^-8 а вывело у вас лишь 6 цифр после натурального. Для того, чтобы вывело 8 цифр (до позиции семёрки), нужно написать не printf("%Lf", a); а printf("%.8f", a);.

→ Ссылка