The fuel tank sender is the culprit. If the sender is disconnecting (which happens when they wear out) the (--) will display.
The sender uses a flimsy wirewound resistor with a copper contact attached to the float arm. The copper contact wears out, the pivots for the float arm wear out, and the excess play causes the contact to drift away from the wirewound resistor, causing the display to show dashes.
Replace the sender/hanger assembly, or pretty much live with the inaccurate dash display.