Non ci avevo pensato alla combinazioni :

codice:

natural	[0-9]+
real	[0-9]+"."[0-9]*

%%

{natural}	printf("%d\n",atoi(yytext));
{real}	printf("%.4f\n",atof(yytext));
Così funziona.