Decimal a Fraccion

Post Reply
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Decimal a Fraccion

Post by Willi Quintana »

Hola amigos,
En una hoja Excel tengo datos como este:
1 3/4
5 7/8
.....
AL concatentar con otro campo,. el resultado es 1.75, 5.875 es decir la facción se convierte en decimal,,, alguna función en (x)Harbour o FW para convertir números decimales a fracciones ??, algo asi como un Dec2Frac(1.75) => 1 3/4
Salu2
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Decimal a Fraccion

Post by karinha »

João Santos - São Paulo - Brasil
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Decimal a Fraccion

Post by cnavarro »

Willi Quintana wrote:Hola amigos,
En una hoja Excel tengo datos como este:
1 3/4
5 7/8
.....
AL concatentar con otro campo,. el resultado es 1.75, 5.875 es decir la facción se convierte en decimal,,, alguna función en (x)Harbour o FW para convertir números decimales a fracciones ??, algo asi como un Dec2Frac(1.75) => 1 3/4
Salu2
No entiendo bien lo que necesitas
Lo he hecho al vuelo, pero mas o menos te puedes hacer una idea (yo los llamo numeros mixtos :D )

Code: Select all

Function Dec2Mixto( nVal )
Local x
Local y
Local z  := 1
Local i

x    := Int( nVal )
y    := ( nVal - x ) * 100

For i = 1 to y
     if empty( (y % i) )
        if empty( 100 % i )
           z := i                //M.C.D.
       endif
    endif
Next x 

Return ( Str( x, 4, 0 ) +"  " + Str( (y / z) , 2, 0 ) +" / " + Str( (100 / z), 2, 0 ) )

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Decimal a Fraccion

Post by Carlos Mora »

La solución de Cristobal es bastante aproximada, quedaría mejor si chequeas que la parte entera sea != 0 para incluirla.

Respecto de la parte fraccionaria, es probable que pierda precisión tan pronto como lo conviertas a decimal. Por ejemplo si tienes '1 1/3', te quedará 1,33333333333... que al aplicar el método del amigo Cristobal para volver a obtener el original nos quedará 1 33/100.

No tengo claro cual es el contexto para pensar una solución más clara, si necesitas entregar resultados precisos tal vez te compense generar algunas rutinas para hacer operaciones con quebrados, manteniendo siempre la precisión representando cada cifra como lo que realmente son, tres enteros ( o dos si lo quieres simplificar un poco )
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Decimal a Fraccion

Post by sysctrl2 »

a eso se le llaman matemáticas ?
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
Post Reply