Is 99.9 the real max MPG? Or is display capable of showing 3 digits only? It seems that limiting max MPG to 99.9 will result in calculation error in MPG.
It's the display. An OBD reader will show the correct mpg...mine is usually around 2000 mpg in a glide.
Even that 2000 mpg figure is not truly correct. It is a bug somewhere between the car and the OBDII reader, making the later believe the car is burning 0.02 gal/hour when it is really burning nothing.
It all depends on what you want to know. If you want instantaneous information above 99.9 mpg, you will need an OBD reader such as a Scangauge. Mine, by the way. shows differing mpg readings (up to four digits) while coasting depending on the speed and whether ICE is turning or not. For instance, one of my favorite readings is when ICE is spinning at 992 rpm (but not burning fuel) and my Scangauge shows mpg as 9999. This happens when speed is above 43 or so mph and I'm pure coasting down an incline. If you are interested in what your mpg really is above 99.9 for a finite distance, you will have to do some calculation at the pump when filling up or, alternatively, using the eco saving screen. Having input the correct cost of fuel, one can calculate the mpg above 99.9 mpg. This is the eco-savings screen This is too short a distance to provide an accurate number. I'll try to provide a better example later, but am in a hurry now.
It is a bug. My old Subaru easily produced a GPH reading of 0.00 gal/hour. Because one cannot divide by zero, the SG-II put up its maximum possible display value of 9999 MPG. While the SG-II in the Prius can sometimes do the same, other times it will show 0.02 gal/hour, and show a lower-than-display-max of 1500 to 3000 MPG, depending on vehicle speed.
Gallons per hour is not miles per gallon. Zero gallons per mile is dividing into zero, not by zero. Miles divided by zero gallons is not definable. The easiest solution is to have a default like .02. In any case, the car is still using energy even in a glide with the engine off. Maybe Toyota figures .02 is a good representation of that particular state.
One can compute Miles-per-gallon (MPG) as Miles-per-Hour (MPH) divided by Gallons-per-Hour (GPH). When GPH is zero, producing an undefined division result, then the display device should post its maximum possible display value. My SG-II can reliably detect 0.00 GPH when my Subaru is in fuel cut-off mode. The SG-II can also detect 0.00 GPH in my Prius some of the time, but not all of the time. That is why I can it a bug. Whether that bug is on the Toyota side, the ScanGauge side, or in the OBDII bus definition or implementation, I cannot say.