geht nicht. Wäre eine Klasse, in der zur jeder Zahl ein sogenannter Exzess dazugerechnet wird, eine Möglichkeit?
Exzess bedeutet, der Wertebereich wird verschoben, sodass du statt z.B. mit einem Datentyp mit einem Wertebereich von -4 bis 4 von 0 bis 8 rechnen kannst. der exzess wäre -4 beim kodieren und +4 beim dekodieren. Wenn du also eine 0 speichern wolltest, rechnet deine Klasse den kodierexzess (-4) dazu und speichert die Zahl intern als -4. Bei einer 8 (die ja eigentlich nicht in unserem angenommenen Wertebereich liegen würde (der ist ja -4 bis +4)) wird dann nach hinzurechnen des exzesses eine 4 und es passt.
Da das Float format aber grundsätzlich anders funktioniert (einfach mal nach "ieee 754" googeln), ist das ohne bitweise veränderung einer floating point zahl nicht so ohne weiteres möglich.
Was du auch noch machen könntest, wäre statt double einen long double zu benutzen, aber der erhöht afair nur die Genauigkeit, und nicht den Wertebereich.