UNO Q: Println() float or double results in "ovf"

I recognize these as MAX_UINT32-ish,
In the printFloat of UNO / AVR printFloat it is stated

size_t Print::printFloat(double number, uint8_t digits) 
{ 
  size_t n = 0;
  
  if (isnan(number)) return print("nan");
  if (isinf(number)) return print("inf");
  if (number > 4294967040.0) return print ("ovf");  // constant determined empirically
  if (number <-4294967040.0) return print ("ovf");  // constant determined empirically

MAX UINT32 == 4.294.967.295 which 0xFFFFFFFF
4294967040 == 0xFFFFFF00

As a float is only 23 bit mantissa, the float value compares with the max float value that can be represented with an uint32_t. The rationale is that the printing math in printFloat() is all done with (32 bit) integers.

FYI, exact this (premature) overflow is the reason I wrote the sci() and eng() functions to have scientific / engineering notation for floats / doubles.
(see printHelpers library)


FYI traced the scientific notation back to this post of 13 years ago - 2013-05-12