herrmann: Unerwartete Ergebnisse

Beitrag lesen

a = Math.pow(2,64);
b = a - 1;

a  >  b => false
a  -  b => 0

Es ist
2^64     = 18446744073709551616
2^64 - 1 = 18446744073709551615

In JS aber
2^64     = 18446744073709552000
2^64 - 1 = 18446744073709552000

Anschaulich: Jenseits von 2^53 = 9007199254740992 gibt es keine exakte Integer-Arithmetik mehr, nur noch Rundungsfehler-behaftete Float-Arithmetik. Für mehr Einzelheiten siehe ECMA 8.5 Number Type

Gruß H.