#include PrintEx serial = Serial; void setup() { Serial.begin(57600); } void loop() { char qf_buf[50] = ""; ltostrqf(-987654321 , 5, qf_buf); serial.printf("Count up : %s\n", ltostrqf(123456789, 3, qf_buf)); serial.printf("Count down: %s\n", ltostrqf(987654321, 3, qf_buf)); serial.printf("\n"); delay(5000); } char* ltostrqf(long int value, unsigned char prec, char *buff ) { char fmt[] = "%ld.%Xld"; fmt[5] = '0' + prec; long int divisor = 1; while(prec--) divisor *= 10; sprintf(buff, fmt, value / divisor, abs(value % divisor)); return buff; }