f64: Wasm-Werttyp
Der f64 Werttyp hält einen 64-Bit Gleitkommawert mit doppelter Genauigkeit.
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 Mantissenbits. Sie decken ungefähr fünfzehn bis siebzehn Dezimalstellen Genauigkeit über den Bereich ±1,8 × 10³⁰⁸ ab, plus die speziellen Werte ±0, ±∞ und NaN.
Arithmetische Anweisungen (f64.add, f64.mul usw.) folgen den IEEE 754 "round-to-nearest-ties-to-even" Semantiken. 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 sind.
f64 ist transparent: sein Bitmuster ist beobachtbar und f64 Werte können in linearem Speicher gespeichert werden. f64.reinterpret_i64 und seine Umkehrung erlauben es Ihnen, Bits zwischen f64 und i64 ohne Konvertierung zu verschieben.
JavaScript-Grenze
f64 entspricht genau der Darstellung von JavaScript Number, sodass Werte die Grenze ohne Verlust an Präzision überschreiten (mit der einzigen Ausnahme, dass JavaScript nur einen einzigen NaN-Wert hat).
Spezifikationen
| Spezifikation |
|---|
| Unknown specification> # syntax-numtype> |