基础问题 C99标准的输出格式问题

我用C语言写了下边的代码:
#include
int main(){
printf("%0.4lf\n",(double)2.23);
}
用GCC编译,如果std=c99,他就会输出0.0000
不用则能正常输出2.2300
为什么?求指教。

double float输出一律都是%f,

因为 他 用 %lf,和%Lf 格式,输出 long double 类型数据

那么 为什么不用C99就可以输出2.2300呢?求指教