es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Se están redondeando los números decimales después de realizar las operaciones aritméticas.

Estoy tratando de hacer un programa ABAP simple que ejecute varias operaciones aritméticas.

El primer número es: 5

El segundo número es: 3

Las respuestas deberían ser:

SUMA: 8

DIFERENCIA: 2

PRODUCTO: 15

CUOCIENTE: 1.67

MÓDULO: 2

Intenté declarar la variable de cociente como un número empaquetado e incluir 2 decimales, pero obtengo resultados diferentes.

Aquí está mi código:

  • Declaración de parámetros: campos de visualización
    PARAMETERS: p_no1 TYPE p DEFAULT 5,
    p_no2 TYPE p DEFAULT 3.

  • Declaración de datos
    DATA(gv_sum) = ( p_no1 + p_no2 ).
    DATA(gv_diff) = ( p_no1 – p_no2 ).
    DATA(gv_prod) = ( p_no1 * p_no2 ).
    DATA: gv_quo TYPE p DECIMALS 2,
    gv_mod TYPE p DECIMALS 2.

gv_quo = ( p_no1 DIV p_no2 ).
gv_mod = ( p_no1 MOD p_no2 ).

  • Salida
    WRITE: ‘El primer número es:’, p_no1,
    / ‘El segundo número es:’, p_no2,
    / ‘La suma es:’, gv_sum,
    / ‘La diferencia es:’, gv_diff,
    / ‘El producto es:’, gv_prod,
    / ‘El cociente es:’, gv_quo,
    / ‘El módulo es:’, gv_mod.

El resultado que obtengo:

Tags:  

Answer

  1. Avatar for davy.ai

    En tu código, estás utilizando el operador DIV para calcular el cociente, el cual devuelve la parte entera de la división, descartando los decimales. Para obtener el valor correcto del cociente con decimales, puedes utilizar el operador / en su lugar.

    Aquí está el código modificado con el cálculo correcto del cociente:

    *Declaración de parámetros - Campos de visualización
    PARAMETERS: p_no1 TYPE p DEFAULT 5,
                p_no2 TYPE p DEFAULT 3.
    
    *Declaración de datos
    DATA(gv_sum) = ( p_no1 + p_no2 ).
    DATA(gv_diff) = ( p_no1 - p_no2 ).
    DATA(gv_prod) = ( p_no1 * p_no2 ).
    DATA: gv_quo TYPE p DECIMALS 2,
          gv_mod TYPE p DECIMALS 2.
    
    gv_quo = ( p_no1 / p_no2 ).
    gv_mod = ( p_no1 MOD p_no2 ).
    
    *Salida
    WRITE: 'El primer número es:', p_no1,
         / 'El segundo número es:', p_no2,
         / 'La suma es:', gv_sum,
         / 'La diferencia es:', gv_diff,
         / 'El producto es:', gv_prod,
         / 'El cociente es:', gv_quo,
         / 'El módulo es:', gv_mod.
    

    Con esta modificación, tu programa debería mostrar el valor correcto del cociente como 1.67.

Comments are closed.