De la fraction à la décimale et retour?

Est-il possible de stocker une fraction comme 3/6 dans une variable quelconque? Quand j’essaye cela, il ne stocke que les chiffres avant le /. Je sais que je peux utiliser 2 variables et les diviser, mais la saisie provient d’un seul champ de texte. Est-ce possible?

Je veux faire cela parce que je dois calculer les fractions en décimales.

Une question bonus;) – Existe-t-il un moyen simple de calculer une valeur décimale pour une fraction? Merci..

La meilleure chose à faire est d’implémenter une classe de fractions (ou classe de nombres rationnels). Normalement, il faudrait un numérateur et un dénominateur pour pouvoir fournir un double et faire des calculs de base avec d’autres objects de fraction. Il devrait également être capable d’parsingr et de formater des fractions.

L’arithmétique rationnelle sur Rosetta Code semble être une bonne chose pour commencer.

Bref, il n’existe pas de véritable moyen d’extraire la fraction originale d’un nombre décimal.

Exemple: prendre 5/10

vous obtiendrez 0,5

maintenant, 0.5 correspond également à 1/2, 2/4, 3/6, etc.

Votre meilleur choix est de stocker chaque entier séparément et d’effectuer le calcul ultérieurement.

Je crains qu’il n’y ait pas de réponse facile pour vous à ce sujet. Pour créer la fraction, vous devez diviser le champ de texte sur le ‘/’, convertir les deux moitiés en double s et les diviser. Pour ce qui est de le reconvertir en fraction, vous devrez ouvrir un manuel de mathématiques et le comprendre. (Pire encore, un double n’est pas vraiment précis – vous pouvez penser qu’il contient 0,1, mais 0,09999999999999998726 ou quelque chose du genre, vous devrez donc choisir une précision et y aller, ou écrire une sorte de fraction. classe basée sur une paire d’entiers.)

Comme indiqué précédemment, la méthode consiste à stocker le numérateur et le dénominateur, de la même manière que vous pouvez l’écrire sur papier.

pour ‘C’ utilisez le

Bibliothèque arithmétique à précision multiple GNU

cherchez «rationnel» dans la documentation.

Existe-t-il un moyen simple de calculer une valeur décimale en fraction?

Si vous limitez vos valeurs décimales à un certain nombre de points décimaux, vous pouvez créer une table de recherche.

 0,3333, 1/3
 0.6666, 2/3
 0,0625, 1/16
 0,1250, 1/8
 0.2500, 1/4
 0.5000, 1/2
 0,7500, 3/4
 etc...

Donc, si l’utilisateur saisit 0,5, vous complétez avec un 0 jusqu’à obtenir 4 décimales. Vous utiliseriez ensuite la table de recherche pour renvoyer “1/2”. La table de recherche devrait probablement être un dictionnaire de toutes sortes.

Ce ne serait pas trop difficile d’estimer non plus. Par exemple, si l’utilisateur a entré 0,0624, vous pouvez facilement sélectionner la valeur du tableau la plus proche de cette décimale. Dans ce cas, le résultat serait “1/16”.

Ne laissez pas la saisie / la saisie de l’ensemble fini de paires décimales / fractions vous effrayer (ce n’est vraiment pas très grand, cela dépend de la précision que vous choisissez).

Si tout échoue, une recherche sur Google révélera peut-être une bibliothèque qui fait ce genre de chose pour vous.