Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#13

Re: C# kann nicht rechnen oder bin ich zu blöd?¿?

  Alt 26. Mai 2008, 14:50
Zitat von alzaimar:
Immer wieder das Gleiche: Floating point ist nicht ungenau, sondern auf 8-20 Stellen (je nach Datentyp) *genau*. Man kann beruhigt damit rechnen, es gibt eigentlich keinen praktischen Fall, bei dem die Genauigkeit (von Extended) nicht ausreicht. Bis sich die 20.te Stelle zu einer relevanten 7.-8. Stelle hochschaukelt (Das sind ist ein Faktor von 10^12 !!). vergeht so Einiges.

Ich finde es nicht richtig, wenn diese Unwahrheit (Floats sind ungenau) hier immer wieder verbreitet wird. Richtig wird die Aussage damit auch nicht...
Das Rechnen ist in der Tat meist nicht problematisch, sondern der naive Umgang mit Vergleiche. Wie oft kommt es nicht vor, daß sich Anwender wundern, weshalb folgendes Programm hängt, zB (in Pascal)

Delphi-Quellcode:
var
  x: extended;
begin
  x := 0.0;
  repeat
    x := x+0.1;
    {Mach was mit x}
  until x=1.0;
end;
Und die Ungenauigkeit ist selbstverständlich da (Größenordnung 1e-7, 1e-16 etc). Sinnvollerweise sollten Compiler Warnungen oder Hinweise ausgeben, wenn Fließkommaausdrücke auf Gleichheit getestet werden.

Gammatester
  Mit Zitat antworten Zitat