f64(endianness?: Endianness): Coder<number>
Creates a coder for 64-bit floating-point numbers.
This function creates a coder that can encode/decode 64-bit floating-point numbers (double-precision IEEE 754 format). The endianness parameter determines the byte order used.
Example 1
Example 1
import { assertEquals } from "@std/assert"; import { f64 } from "@hertzg/binstruct/numeric"; // Create big-endian and little-endian coders const f64be = f64("be"); const f64le = f64("le"); // Test data const testValue = 3.14159265359; // Encode and decode with big-endian const bufferBE = new Uint8Array(8); const bytesWrittenBE = f64be.encode(testValue, bufferBE); const [decodedBE, bytesReadBE] = f64be.decode(bufferBE); // Use approximate comparison for floating-point precision assertEquals(Math.abs(decodedBE - testValue) < 0.0000001, true); assertEquals(bytesWrittenBE, 8); assertEquals(bytesReadBE, 8); // Encode and decode with little-endian const bufferLE = new Uint8Array(8); const bytesWrittenLE = f64le.encode(testValue, bufferLE); const [decodedLE, bytesReadLE] = f64le.decode(bufferLE); // Use approximate comparison for floating-point precision assertEquals(Math.abs(decodedLE - testValue) < 0.0000001, true); assertEquals(bytesWrittenLE, 8); assertEquals(bytesReadLE, 8);
optional
endianness: Endianness = be
The byte order to use ("be" for big-endian, "le" for little-endian), defaults to "be"
Coder<number>
A Coder<number> for 64-bit floating-point numbers