Rolf B: PHP: zwei identische Zahlen vergleichen bringt ein false

Beitrag lesen

Hallo Raketentester,

ja, sorry, das Forum zeigt nicht an, dass ich dieses Code-Snippet als PHP markiert hatte.

Und bc rechnet nicht in IEEE754, die man-Page sagt:

Numbers are arbitrary precision numbers. This precision is both in the integer part and the fractional part. All numbers are represented internally in decimal and all computation is done in decimal.

D.h. es verwendet eine eigene, nicht von der Hardware unterstützte Zahlendarstellung und ist demnach für die Fragestellung des Threads nicht repräsentativ.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  RESULT    PIC ZZZ9.99999;

PROCEDURE DIVISION.
    COMPUTE RESULT = 100.1 - 100.0.
    DISPLAY RESULT.
    STOP RUN.

gibt auch 0.1 aus (genauer: ___0.10000). Weil COBOL im Normalfall mit COMPUTATIONAL-3 (gepackte Zahlen, ein BCD-Format) rechnet und die Ausgabe gerundet ist. Auch nicht repräsentativ 😉

Rolf

--
sumpsi - posui - obstruxi