tolerate negative values of precision in printf, fallback to default precision