sprintf( str, "%14g", val );

if( strchr(str,'e') || strchr(str,'E') )
{
  sprintf( str, "%14.f", val );
}

で、いいんジャマイカ?と思うのはオレだけか?