I guess the easiest way would be to truncate the value before formatting it:
void toAscii(int x, int y, float val)
{
char txt[16];
if (val < 10.)
val = floor(val*100.)/100.;
else if (val < 100.)
val = floor(val*10.)/10.;
else
val = floor(val);
if (val < 10.)
sprintf(txt,"%4.2f",val);
else if (val < 100.)
sprintf(txt,"%4.1f",val);
else if (val < 1000.)
sprintf(txt,"%4.0f",val);
else
sprintf(txt," 999");
drawTextToDisplay(x,y,txt);
}