Forum:  Informatik
Thema: C - double - Überlauf oder nicht
Themen-Übersicht
JamesNguyen
Aktiv
Dabei seit: 08.11.2020
Mitteilungen: 187
Themenstart: 2021-02-28 04:17

Hallo,

was passiert eig. wenn ich solche Dinge mache:

double b = 0.85E+308 + 0.85E+308 + 1

(die Grenze bei double ist 1.7E+308)

Vielen Dank,
James


Schottky
Neu
Dabei seit: 01.03.2021
Mitteilungen: 1
Beitrag No.1, eingetragen 2021-03-01 11:04

Hi James,

Also in dem Fall wird die 1 einfach vernachlässigt. Grundlegend gilt: Wenn zwei Zahlen (double) addiert werden, kann es zu Auslöschung kommen. 1 ist einfach viel viel kleiner als 0.85E+308 bzw. 1.7e+308 und die Zahl kann nicht dargestellt werden.
Das ganze passiert bereits bei viel kleineren Zahlen, z.B. wird (1e20 + 1) == 1e20 true zurück geben. Die Zahl 1e20 + 1 kann einfach nicht dargestellt werden.

Wenn man wirklich eine Situation hätte, die zum "überlauf" führt (also z.B. 1e+308 + 1e+308) bekommt man einfach +inf (das Gleiche gilt natürlich auch für Zahlen < 0)




Dieses Forumbeitrag kommt von Matroids Matheplanet
https://https://matheplanet.de

Die URL für dieses Forum-Thema ist:
https://https://matheplanet.de/default3.html?topic=252601=51
Druckdatum: 2021-05-17 01:41