is printf() broken?

Steve Kargl sgk at troutmask.apl.washington.edu
Sun Sep 5 12:36:41 PDT 2004


The following program

#include <stdio.h>
int main(void) {
	int d;
	double x;
	x = 1.234E05;
	for (d = 0; d < 5; d++)
    	printf("%+-31.*e\n", d, x);
	return 0;
}

generates

+1e+05                         
+1.2e+05                       
+1.23e+05                      
+1.234e+05                     
+1.2340e+05                    

The question is whether the first number should be
"+1.e+05".  That is, is the printing of the decimal
point required or optional?  I only have Harbison
and Steele's book and it does not state what the 
expected behavior should be.

-- 
Steve


More information about the freebsd-standards mailing list