Quiero que el usuario sea capaz de escribir una fracción como:PHP convierte decimal a fracción y viceversa?
1/2
2 1/4
3
y convertirlo en su correspondiente decimal, para ser salvo en MySQL, de esa manera puedo pedir por ella y hacer otras comparaciones a ella .
pero tengo que ser capaz de convertir el número decimal de nuevo a una fracción al mostrar al usuario
así que básicamente necesito una función que convierte una cadena fracción a decimal:
fraction_to_decimal("2 1/4");// return 2.25
y una función que puede convertir un decimal a una cadena de facción:
decimal_to_fraction(.5); // return "1/2"
¿Cómo puedo hacer esto?
Tan agradable como lo es para un usuario, que está pidiendo un montón de trabajo frente a la definición de tres campos - número entero, numerador y denominador. –
El problema es que, dada la representación interna de los puntos flotantes, a menudo terminará con una fracción simple, pero no tiene una simple representación de flotación binaria aperiódica. (Piense 1/7 en notación decimal, sin poder usar una notación de periodicidad). Consulte aquí: http://en.wikipedia.org/wiki/Binary_numeral_system#Fractions_in_binary – DrYak
si desea una precisión de flotación de hasta grandes números, eche un vistazo a este https://gist.github.com/anonymous/8ec4a38db78701e7bbc6. Lo adapté para que puede admitir precisión hasta el mayor valor int. Incluso podría hacer eso con la matemática de los números grandes para una precisión ilimitada. – Tschallacka