Realizar redondeo (Rounded) siempre hacia arriba

Todo lo relacionado con Cobol en ambientes batch, online(CICS,IMS) con bases de datos(DB2, Adabas) etc.
Responder
Avatar de Usuario
m0shi0
Usuario avanzado
Usuario avanzado
Mensajes: 32
Registrado: 17 Sep 2008, 18:54
País: México
Ciudad: Queretaro
Ocupación: Consultor
Ubicación: Mexico

Realizar redondeo (Rounded) siempre hacia arriba

Mensaje por m0shi0 » 18 Jun 2018, 18:51

Buen dia comunidad.

Alguien me puede apoyar a verificar si hay alguna opcion con el ROUNDED de cobol, para que realice el redondeo hacia arriba sin importar el decimal que tenga.

Ejemplo

Valor
12.02
Redondeo
13

Valor
14.78
Reondeo
15

Saludos y que tengan excelente tarde.
El secreto de la existencia no consiste solamente en vivir, sino en saber para que se vive.

Avatar de Usuario
Vicente
Colaborador avanzado
Colaborador avanzado
Mensajes: 541
Registrado: 21 Jul 2011, 04:52
País: España
Ciudad: Malaga
Ocupación: Técnico en Sistemas

Re: Realizar redondeo (Rounded) siempre hacia arriba

Mensaje por Vicente » 20 Jun 2018, 09:52

Hola,
Esto dice mi manual Cobol reference

The INTEGER-PART function returns an integer that is the integer portion of the
argument specified.

Usando la función INTEGER-PART puedes hacer lo siguiente:
Si valor es igual a su parte entera
valor = parte entera de valor
en caso contrario
valor = parte entera de valor + 1
fin

Espero que te sirva
Varios días probando, equivocandote y volviendo a probar
pueden ahorrarte quince minutos de lectura de un manual.

f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 56
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

Re: Realizar redondeo (Rounded) siempre hacia arriba

Mensaje por f_caballero » 30 Jun 2018, 13:35

Prueba esto:
01 campo1 pic 9(5)v92 value 125,01.
01 campo2 pic 9(5).

ADD 0,99 TO CAMPO1 GIVING CAMPO2.

Esto debería devolverte 126 en CAMPO2.

Puede que el COBOL no esté escrito correctamente, hace tiempo que no lo uso, revisa la sintaxis de la instrucción ADD.
La idea es que dá igual el valor de la parte decimal de CAMPO1, en cuanto se mayor que cero, sumaras 1 a las unidades, llevándolo a CAMPO2.

Suerte.
Salud y fortuna.
Fernando Caballero

Responder