trunc_f64_u: Wasm text instruction

The trunc_f64_u instruction removes the fractional part of an f64 value and outputs it as an unsigned integer.

This is a separate instruction, trunc, which removes the fractional part of a float and outputs a float.

There are also other truncate integer conversion instructions:

Try it

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

    f64.const 2300044.4 ;; load a number onto the stack
    i32.trunc_f64_u ;; discard decimal part and return unsigned integer
    call $log ;; log the result

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

Syntax

value_type.trunc_f64_u
value_type

The type of value the instruction is being run on. The following types support trunc_f64_u:

  • i32
  • i64
trunc_f64_u

The trunc_f64_u instruction. Must always be included after the value_type and a period (.).

Type

[input] -> [output]
input

The input floating point number.

output

The output integer.

Binary encoding

Instruction Binary format Example text => binary
i32.trunc_f64_u 0xab i32.trunc_f64_u => 0xab
i64.trunc_f64_u 0xb1 i64.trunc_f64_u => 0xb1

See also