Can precision of floating point numbers in Javascript be a source of non determinism?

javascript, math, non-deterministic

Solution

Although the ECMAScript language specification 5.1 edition states that numbers are primitive values corresponding to IEEE 754 floats, which implies calculations should be consistent:

http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf

4.3.19 Number value

primitive value corresponding to a double-precision 64-bit binary format IEEE 754 value

NOTE A Number value is a member of the Number type and is a direct representation of a number.

As BlueRaja points out, there is a sort of caveat in section 15.8.2:

The behaviour of the functions acos, asin, atan, atan2, cos, exp, log, pow, sin, sqrt, and tan is not precisely specified here...

Meaning, these are at least some cases where the outcome of operations on numbers is implementation dependent and may therefore be inconsistent.

Problem

Can the same mathematical operation return different results in different architectures or browsers ?

Original source

Related problems