Я пытаюсь понять, почему возникает большая проблема, используя меньшую программу в качестве примера. Эта небольшая программа не работает, заставив меня поверить в то, что я понимаю недостающую функцию.
Насколько я полагал (полагаю), следующая программа должна инициализировать строку длиной до 30 символов, затем принять число "5" до девяти значимых цифр и превратить ее в эту строку. Затем программа должна распечатать значение "5.00000000". Однако программа печатает значение 7.96788 (...). Почему это?
#include <stdio.h>
int main()
{
char word[30];
sprintf(word, "%.9g", 5);
printf(word);
return 0;
}