static void lcdPrintBigNum(float val) { // good up to 3276.8 int16_t ival = val * 10; uint16_t uval; boolean isNeg; if (ival < 0) { isNeg = true; uval = -ival; } else { isNeg = false; uval = ival; } int8_t x = 16; do { if (uval != 0 || x >= 9) { const char PROGMEM *numData = NUMS + ((uval % 10) * 6); x -= C_WIDTH; lcd.setCursor(x, 0); lcd.write_P(numData, C_WIDTH); numData += C_WIDTH; lcd.setCursor(x, 1); lcd.write_P(numData, C_WIDTH); uval /= 10; } /* if val */ --x; lcd.setCursor(x, 0); lcd.write(C_BLK); lcd.setCursor(x, 1); if (x == 12) lcd.write('.'); else if (uval == 0 && x < 9 && isNeg) { lcd.write(C_CT); isNeg = false; } else lcd.write(C_BLK); } while (x != 0); }