Conversiones en WebAssembly
destino.op_origen, signo incluido — nada es implícito.
(module
;; Conversions are all spelled out: destination.op_source, with
;; signedness where it matters. Nothing converts implicitly.
(func (export "ratio") (param $part i32) (param $whole i32)
(result f64)
(f64.div
(f64.convert_i32_s (local.get $part))
(f64.convert_i32_s (local.get $whole))))
;; trunc drops the fraction and traps if it cannot fit.
(func (export "whole_meters") (param $km f64) (result i32)
(i32.trunc_f64_s (f64.mul (local.get $km) (f64.const 1000))))
(func (export "shrink") (param $precise f64) (result f32)
(f32.demote_f64 (local.get $precise))))
Cómo funciona
f64.convert_i32_slee un entero hacia el mundo flotante.i32.trunc_f64_ssuelta la fracción y atrapa si se desborda.f32.demote_f64angosta un flotante; promote lo ensancharía.
Palabras clave y builtins usados aquí
exportf32f64funci32moduleparamresult
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 570
- Tokens
- 103
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 103 segundos.
Paso 2 de 3 en Tipos más anchos; paso 24 de 28 en Fundamentos del lenguaje.