Rundung ab welcher Stelle bei IEEE 754 single(float) und double

Hallo zusammen,

ich habe bereits mehrere Tage im Internet nach Antworten gesucht, aber so richtig komme ich leider nicht auf die Lösung.

Es geht um die Frage, wie viele signifikante Dezimalstellen sowohl single (float), als auch double haben. Also konkret, ab welcher Stelle einer Dezimalzahl wird es ungenau, wenn die Zahl in einem der IEEE 754 Formate gespeichert wird und wie könnte ich dies ggf. mathematisch errechnen?

Ich habe bisher mehrere Aussagen gefunden, z.B. für das Format single manchmal 6, manchmal 7, manchmal 6-8 usw. Dezimalstellen gespeichert werden können. Doch weitere Abweichungen gibt es dabei, wie viele davon signifikant sind.

Das für mich bisher plausibelste war, dass single 7 Dezimalstellen darstellen kann und davon 6 signifikant sind. Ebenso dass double 16 Dezimalstellen darstellen kann und davon 5 signifikant sind, also jeweils nach der letzten signifikanten Stelle ungenau wird.

Ist das so korrekt?

Gibt es hierfür eine mathematische Formel, mit der ich berechnen kann, ab welcher Stelle in einem jeweiligen Format die Ungenauigkeit auftritt?

Vielen Dank vorab für die Hilfe.

Ich hoffe ich habe meine Frage verständlich genug formuliert.

Viele Grüße
Imhotep

Ich nehme an, die Auflösung einer Zahl kannst Du berechnen. Also in der Regel die Änderung, wenn die Mantisse ein LSB mehr oder weniger hat.

Das Zahlenformat selber kennt keine „Signifikanz“. Wenn überhaupt, dann geht es entweder um die Bedeutung der dargestellten Zahlen (ein BMI als Beispiel, mit cm als Messwert, kann nicht mehr als 3 Signifikante Stellen haben)

Oder es geht um die Genauigkeit von Berechnungen. Hier gehen bei den allermeisten Rechenschritten ein paar Auflösungen verloren, so dass von 7 Stellen am Anfang nach 5 Operationen vielleicht noch 6 oder 5 bleiben.

Hallo,
man rechnet log10(2^mantisse), oder ausmultipliziert log10(2) * mantisse, damit bekommt man exakt, wieviele Dezimalstellen „Kapazität“ die Binärzdarstellung hat. Aus Rundungsgründen ist das letzte Bit in der Mantisse verrauscht, also insignifikant. Selbige Rechnung (und Rundung) liefert also 6 signifikante Dezimalstellen bei binary32 und 15 signifikante Stellen bei binary64.

@hroptatyr:

Wow, danke, das ist genau das was ich die ganze Zeit wissen wollte. Echt super, ich hätte früher hier fragen sollen :smile:

Besten Dank.