Из стандарта C (7.21.6.1 Функция fprintf, стр. # 6)
Для преобразований a, A, e, E, f, F, g и G, результат преобразования числа с плавающей запятой всегда содержит символ десятичной запятой, даже если за ним нет цифр. (Обычно десятичный знак появляется в результате этих преобразований, только если за ним следует di git.) Для преобразований g и G завершающие нули не удаляются из результата.
Вот демонстрационная программа.
#include <stdio.h>
int main(void)
{
float value = 10.0f;
printf( "%.0f\n", value );
printf( "%#.0f\n", value );
return 0;
}
Ее вывод:
10
10.
Как видно из второго вывода, используется десятичная точка.