Saltar al contenido

Dividir dos enteros no se imprime como un número decimal en Rust

Ten en cuenta que en las ciencias informáticas un problema casi siempere suele tener diferentes soluciones, pero te compartiremos lo más óptimo y eficiente.

Solución:

Al igual que en C y C ++, dividir enteros da como resultado otro entero. Pruebe este programa de C ++ para ver:

#include 

using namespace std;

int main()

    cout << 22 / 7 << endl;            // 3
    cout << 22.0 / 7.0 << endl;        // 3.14286

De manera similar, en Rust, debe especificar ambos números como flotantes en su lugar, lo que se hace colocando un decimal en cualquier lugar del número. Prueba este equivalente de Rust del programa anterior:

fn main() 
    println!(":.3", 22 / 7);         // 3
    println!(":.3", 22.0 / 7.0);     // 3.143

Si tiene variables, puede convertirlas con as a cualquiera f32 o f64, dependiendo de sus necesidades:

fn main() 
    let x = 22;
    println!(":.3", x / 7);          // 3
    println!(":.3", x as f32 / 7.0); // 3.143

Cuando está trabajando con variables enteras y no tiene la opción de agregar puntos decimales, puede convertir las variables enteras en flotantes usando el as palabra clave:

fn main() 
    let a = 42;
    let b = 23;
    let c = a / b;  // integer division
    let d = a as f64 / b as f64;  // cast both variables to float before division
    println!("integer division: nfloat division: ", c, d);

Esto devuelve los siguientes valores:

integer division: 1
float division: 1.826086956521739

Tienes la opción de favorecer nuestra ocupación fijando un comentario o valorándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *