I had this issue on my '99 although no where as bad as some people have had it. I did the fuel gauge reset shown below and while it is still not 100% accurate it is much closer. I generally fill up when my gauge is between 1/2-1/4 showing on the gauge to be safe. But I have gone all the way to Enough on the gauge with the fuel light showing and still had multiple gallons left in the tank.
This information below is not mine, I found it on the 1st yotatech link below. After I did mine I noticed the gauge change from the prior reading and it is much closer now that it was prior.
Electrical EL010-99 99 & 00 4Runner
Vehicle has to be sitting on a level surface with an inclination of +/- 0.5 degrees.
1.With the ignition switch in the Off position, press and hold the trip speedometer reset button.
2. Continue pressing the reset button while turning the ignition switch to the On position.
3. Within 5 seconds of turning the ignition switch On, release the trip switch, press trip switch 3 times and on the 3rd press, hold the switch for 5 seconds. The buzzer will sound for 1 second at 800HZ.
4. After the buzzer stops, release the trip switch.
5.Press the trip switch one more time and hold for 5 seconds. Once more the buzzer will sound for 1 second at 800HZ.
Worked like a charm on mine, hopefully it will work on yours too!"
it also worked on mine, i was so confused on how i was gettin 25mpg pulling a loaded trailer till i was stuck on the side of the road. gauge was reading over half a tank so i couldnt figure out why it wouldnt run. (a 4runner dont run on faith) i was out of gas. after a new fuel filter, that it needed anyways, a couple of shots of ether and a few knocks on the gas tank we realized it was empty. followed the steps above and the gauge reset properly. no problems since
Fuel Gauge Issue? - YotaTech Forums
3rd gen fuel gauge problem: I think I figured out the problem (pics) - Page 3 - YotaTech Forums