double d =2.96e-57;
printf("%le\n", d);

とすると、

2.96e-57     fedora core3のgcc
2.96e-057    VS.Net

となったのですが、printfで指数部の桁数を自分で指定することはできますか?
例えば

2.96e-000057

こんな風に出す方法はありますか?
よろしく