as the formatting string %l was not correct for unsigned long, I would expect other results than seeing the output fields being printed in the wrong place!?
May I consider this to be a bug?
Arduino 2.3.2 for ESP32-S3
l is a modifer; %l means nothing, so you got nothing.
As shown with the previous statement, the long unsigned i is 26, or 0x1A. The long is the same size as a float, 32 bits. So it is gets printed as %.2f. What is 0x1A interpreted as a float? A really small number, when rounded to two decimal places, is just 0.00.