Do the calculation for Read = 1023 and for Read = 0. i.e. the two limit values.
For 123 you get 10 with 3399 zeros. That is out of range of both decimal and scientific notation.
Even with 0 you get a very small number.
I am not sure how the Arduino print() handles scientific output.
Try it on the Serial Terminal.
David.
Edit.
void setup()
{
Serial.begin(9600);
Serial.println(5.5e-4);
Serial.println(5.5e1500);
}
void loop()
{
}
displays 0.00 and inf (on an M0 Pro). It will do the same on a Uno.
If you want fancy formatting or scientific notation, you can probably use dtostrf() and dtostre()
You still need to provide valid float numbers.