Expand/Shrink

floatNN_to_atom

Definition: atom a1 = float32_to_atom(sequence s)
-- or --
atom a1 = float64_to_atom(sequence s)
-- or --
atom a1 = float80_to_atom(sequence s)
Description: Convert a sequence of 4/8/10 bytes to an atom.

These bytes must contain an IEEE floating-point number in the right 32/64/80-bit format.
pwa/p2js: Supported, apart from float80_to_atom() - while JavaScript has DataView.prototype.getFloat32 and DataView.prototype.getFloat64, there is no DataView.prototype.getFloat80, as yet, and no mention of it in the ECMAScript specs.
Comments: There are three very similar routines, float32_to_atom, float64_to_atom, and float80_to_atom, which deal with 32-bit/4-byte, 64-bit/8-byte, and 80-bit/10-byte conversions respectively.

Any 32, 64, or 80-bit IEEE floating-point number can be converted to an atom, however on 32-bit the conversion of an 80-bit float (implicitly to a 64-bit float) may unavoidably incur some loss of precision (less than one trillionth of one percent, mind you).
Example:
f = repeat(0, 8)
fn = open("numbers.dat", "rb")  -- read binary
for i=1 to 8 do
    f[i] = getc(fn)
end for
a = float64_to_atom(f)
Implementation: See builtins\VM\pFloatN.e (an autoinclude), or pwa\p2js.js, for details of the actual implementation.
See Also: atom_to_floatNN