Truncate (float to int)

Die trunc-Anweisungen werden verwendet, um Gleitkommazahlen in Ganzzahlen zu konvertieren. Sie heißen "trunc", weil sie den Bruchteil der Zahl bei der Konvertierung abschneiden. Es gibt sowohl signierte als auch unsignierte Versionen dieser Anweisung.

Es gibt eine andere trunc Anweisung, die den Bruchteil eines Gleitkommazahlenwerts abschneidet, ohne ihn in eine Ganzzahl umzuwandeln.

Probieren Sie es aus

(module
  (import "console" "log" (func $log (param i32)))
  (func $main

    f32.const 10.5 ;; push an f32 onto the stack

    i32.trunc_f32_s ;; convert from f32 to signed i32 rounding towards zero (.5 will be lost)

    call $log ;; log the result

  )
  (start $main)
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });

Syntax

wat
;; push an f32 onto the stack
f32.const 10.5

;; convert from f32 to signed i32 rounding towards zero (.5 will be lost)
i32.trunc_f32_s

;; the top item on the stack will now be the value 10 of type f32
Anweisung Binärer Opcode
i32.trunc_f32_s 0xa8
i32.trunc_f32_u 0xa9
i32.trunc_f64_s 0xaa
i32.trunc_f64_u 0xab
i64.trunc_f32_s 0xae
i64.trunc_f32_u 0xaf
i64.trunc_f64_s 0xb0
i64.trunc_f64_u 0xb1