11111010111 1010 1011

Programar por Programar


¿Te gusta programar?
Inicio


BigFrac: Estructura para números fraccionarios de gran precisión

Estructura en Visual Basic 2005 que usa BigNum_ltm.dll y BigNum.vb


Publicado: 22/Oct/2007
Actualizado: 22/oct/2007
Autor: Guillermo 'guille' Som


 

Contenido

Esta estructura (BigFrac) sirve para trabajar con números fraccionarios, es decir, números "no enteros" pero que no usan la coma flotante, por ejemplo, esta estructura trabaja en el formato 1/3, pero no 0.3333333.

La precisión de los números la da la estructura BigNum que como ya sabrás es par trabajar con números enteros de gran precisión.

Si lo que quieres es trabajar con números en formato coma flotante, te recomiendo que veas la estructura BigFloat.

Por lo poco que sé de estos temas, (si quieres saber mucho de números, te recomiendo el sitio de mi colega May en TeladeAraña que trata de todo esto de los números explicado claramente, es decir para que hasta yo me entere guiño), cuando se trabajan con números fraccionarios, éstos se suelen simplificar, es decir, el número 20/4 es lo mismo que 10/2 o que 5, por tanto si se puede, se simplifica. En caso de que no se pueda simplificar al máximo, por ejemplo, 14/6 se simplifica a 7/3 pero no a 3.5 ya que esta clase no maneja números en coma flotante.

Como te decía, esto es lo normal, pero para aquellos que no quieran que se simplifiquen he creado una constante que sirve para eso: SimplificarOperaciones que de forma predeterminada tiene un valor True, pero que puedes cambiar a False cuando no quieras que se simplifiquen.

De la misma forma, al comparar los valores de este tipo, se deben simplificar antes de compararlos, ya que si quieres comparar 20/4 con 10/2 debería dar un valor verdadero al comparar la igualdad (si ya están previamente simplificados no hay problemas, ya que el valor interno será 5), para poder hacer todas esas comparaciones adecuadamente, el valor de SimplificarOperacionesComparacion debe ser True (que es el valor por defecto).

Sé que estos campos no deberían ser manipulados desde fuera, pero... ahí están, solo que lo recomendable es que ambos tengan un valor True si quieres que todo funcione como es debido.

Aquí tienes el código fuente de esta estructura (BigFrac).

Si quieres ayudar a mejorarla, léete lo que digo en la página principal de esta sección de números de gran precisión usando LibTomMath.

 


Programar por programar... ¡porque te gusta programar!
Ir al índice principal
Ir al sitio del Guille - Ir a los foros del Guille

Has entrado usando el host www.programarporprogramar.org