Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Cocina Casera
Cocina Casera Código para diferentes compiladores, creado por nuestros foreros, probado y listo para usar.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
Muy buenas charlietron Presentación 2 29 de abril de 2024 09:25
Muy buenas! frutiyos Presentación 1 24 de abril de 2022 11:34
[Sintaxis] Identificacion de numeros en una cadena Breew PowerCOBOL (ActiveX, v4 - v11) 2 4 de noviembre de 2018 19:47
Traductor de números a letras. Gusaiello Cocina AcuCOBOL 2 22 de mayo de 2018 20:45
[Componente] Rutina Números Aleatorios Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 2 15 de octubre de 2017 01:26

Respuesta
 
Herramientas

  #1
Antiguo 12 de abril de 2015, 18:02
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492
Idea Dividir números muy grandes en COBOL
1 Inactivo Inactivo

Todos sabemos que COBOL, no soporta más de 18 dígitos, incluidos los decimales, ¿qué pasa cuando queremos hacer un cálculo para un número grande?, por ejemplo para calcular el DC de una cuenta de un banco, (que son 20 dígitos, 24 con el IBAN), hay una manera muy sencilla de hacerlo, y da lo mismo el tamaño del número que queramos dividir:

  1. Partimos el número en números más pequeños, tantos como necesitemos, por supuesto, los números que sean más grandes que el divisor, si no, nos vamos a hinchar a hacer cálculos.
  2. Dividimos la primera parte entre el DIVISOR y sacamos la PARTE ENTERA del resto.
  3. Ésta parte entera del RESTO, la añadimos al principio de la siguiente parte del número.
  4. Repetimos los puntos 2 y 3, así hasta terminar todas las partes en las que hayamos dividido el número grande (el número original).
  5. Por último, concatenamos cada una de las partes enteras de la división en orden, y la última parte con los decimales incluidos.

* Por ejemplo:

69823657153 dividido entre 97 (69823657153 / 97) = 719831517,041237

- Partimos el número en 2 partes: 698236 y 57153
- Dividimos: 698236 / 97 = 7198,309278 (el mod 97 es 30)
- Añadimos el 30 al principio de la siguiente parte del numero: 3057153
- Dividimos: 3057153 / 97 = 31517,041237
- Concatenamos: 7198 y 31517,041237 = 719831517,041237


Espero que os sirva de algo

Un saludo.-
Josber is offline   Responder Con Cita
  #2
Antiguo 27 de abril de 2015, 17:29
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Josber, creo que hablas de campos puros COBOL. Porque en C++ por ejemplo existen estos tipos:

Código:
Size    Unique representable values Notes
8-bit   256                         = 2 in 8
16-bit  65 536                      = 2 in 16
32-bit  4 294 967 296               = 2 in 32 (~4 billion)
64-bit  18 446 744 073 709 551 616  = 2 in 64 (~18 billion)
Pero PowerCOBOL tiene equivalentes de esos campos. El equivalende de DOUBLE (que es el mas grnade, 2 en 64), seria PIC S9(18) COMP-5.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 2 de mayo de 2015, 10:30
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Correcto Kuk, aún así como curiosidad también sirve, por si alguien lo quiere hacer con una calculadora de 8 dígitos


Un saludo.-
Josber is offline   Responder Con Cita
  #4
Antiguo 2 de mayo de 2015, 21:44
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Josber, claro que sirve. Lo mio solo era un comentario!



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:45.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.