Truncate (float zu int)

Die trunc-Anweisungen werden zum Konvertieren von Gleitkommazahlen in ganze Zahlen verwendet. Der Name "truncate" leitet sich davon ab, dass der Bruchteil der Zahl bei der Konvertierung abgeschnitten wird. Es gibt sowohl signierte als auch unsignierte Versionen dieser Anweisung.

Es gibt eine andere trunc-Anweisung, die den Bruchteil einer Gleitkommazahl abschneidet, ohne sie in eine ganze Zahl zu konvertieren.

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

wasm
;; 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