f64: Wasm-Typ
Der f64 Wertetyp hält einen 64-Bit-Doppelpräzisions-Fließkommawert.
Syntax
;; Function returning an f64 constant
(func (result f64)
f64.const 3.141592653589793)
;; f64 parameter and local
(func (param $p f64) (local $tmp f64)
;; ...
)
;; Mutable f64 global
(global $ratio (mut f64) (f64.const 1.0))
Beschreibung
f64-Werte folgen dem IEEE 754 binary64 (Doppelpräzisions)-Format: ein Vorzeichenbit, elf Exponentenbits und zweiundfünfzig Signifikantenbits. Sie decken grob fünfzehn bis siebzehn Dezimalstellen über den Bereich ±1,8 × 10³⁰⁸ ab, sowie die speziellen Werte ±0, ±∞ und NaN.
Arithmetische Anweisungen (f64.add, f64.mul usw.) folgen den IEEE 754 Rundungsregeln „Runden zur nächsten geraden Zahl“. Das genaue Bitmuster eines durch Arithmetik erzeugten NaN ist nicht deterministisch, daher sollten Sie sich nicht darauf verlassen, dass spezifische NaN-Payloads über Implementierungen oder Architekturen hinweg gleich bleiben.
f64 ist transparent: Sein Bitmuster ist beobachtbar und f64-Werte können im linearen Speicher gespeichert werden. f64.reinterpret_i64 und dessen Umkehrung ermöglichen es, Bits zwischen f64 und i64 ohne Konvertierung zu verschieben.
JavaScript-Grenze
f64 entspricht exakt der Darstellung von JavaScript Number, sodass Werte die Grenze ohne Präzisionsverlust überschreiten (mit der einen Ausnahme, dass JavaScript nur einen einzigen NaN-Wert hat).
Spezifikationen
| Spezifikation |
|---|
| Unknown specification> # syntax-numtype> |