Fehler im Compiler???

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Mo Mai 21 11:20:54 CEST 2001


Das von Allers berichtete Rechenproblem scheint auf einem Fehler
in Microsofts C++ zu beruhen. Auf sowas kommt man immer zuletzt...
Es ist so: Im Programm steht, etwas vereinfacht:

iZ=zahl(iV);

wobei iZ und die Funktion zahl() als Gleitkomma definiert sind,
iV ist die Zeichenkette der internen Variablen.
Wenn nun  iV="20010519" ist, kommt iZ=20010520 heraus.
Wenn man sich den Funktionswert aber zum Testen an der Stelle
anzeigen laesst, betraegt er korrekt  20010519. Die Zuweisung
mit dem =-Zeichen addiert an der Stelle also eigenmaechtig eine 1.
Mit "20010518" passiert das nicht, mit "20010619" und mit
"20010719" aber passiert derselbe Fehler.
Mit "20010529" aber kommt eins WENIGER raus!
Und mit 2000 statt 2001 oder mit 9999 ist es dasselbe. Aber mit "200" 
an der Stelle, oder 999 (also 1 Stelle weniger) ist alles richtig.
Da soll man nicht verrueckt werden? Noch ist keine Loesung gefunden...

MfG B.E.

Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro