typestar

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

  1. f64.convert_i32_s lee un entero hacia el mundo flotante.
  2. i32.trunc_f64_s suelta la fracción y atrapa si se desborda.
  3. f32.demote_f64 angosta un flotante; promote lo ensancharía.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Tipos más anchos; paso 24 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →