Resultados 1 al 4 de 4

Tema: Dividir números muy grandes en COBOL

  1. #1
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    690
    Última visita
    Ayer a las 13:30

    Agradecimientos
     
    Recibidos
    383
    Enviados
    314

    Citaciones y menciones
     
    Mentioned
    31 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    6 Post(s)
    Poder de Reputación
    35
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Lightbulb Dividir números muy grandes en COBOL

    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.-

    0 Not allowed!

  2. #2
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    37
    Mensajes
    2,084
    Última visita
    Ayer a las 17:02

    Agradecimientos
     
    Recibidos
    906
    Enviados
    782

    Citaciones y menciones
     
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    12 Post(s)
    Poder de Reputación
    10

    Predeterminado

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

    CODE Código:
    1. Size    Unique representable values Notes
    2. 8-bit   256                         = 2 in 8
    3. 16-bit  65 536                      = 2 in 16
    4. 32-bit  4 294 967 296               = 2 in 32 (~4 billion)
    5. 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.

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  3. #3
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    690
    Última visita
    Ayer a las 13:30

    Agradecimientos
     
    Recibidos
    383
    Enviados
    314

    Citaciones y menciones
     
    Mentioned
    31 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    6 Post(s)
    Poder de Reputación
    35
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    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.-

    0 Not allowed!

  4. #4
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    37
    Mensajes
    2,084
    Última visita
    Ayer a las 17:02

    Agradecimientos
     
    Recibidos
    906
    Enviados
    782

    Citaciones y menciones
     
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    12 Post(s)
    Poder de Reputación
    10

    Predeterminado

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

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Aporte] Traductor de números a letras.
    Por Gusaiello en el foro Cocina AcuCOBOL
    Respuestas: 2
    Último Mensaje: 22.05.2018, 21:45
  2. [Componente] Rutina Números Aleatorios
    Por Hrmcobol en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 2
    Último Mensaje: 15.10.2017, 02:26

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •