Transformer un nombre avec virgule en fraction

0/5 (5 avis)

Vue 6 796 fois - Téléchargée 1 046 fois

Description

Ce petit code convertit les nombres avec vigules en fraction
exemple: 0,025 = 1/40
mais pas le contraire
c'est amusant et sans prétention; j'ai juste limité les nombres à une certaine longueur de chiffes afin de limiter l'erreur dépassement de capaité.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_alpha5 Messages postés 74 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 24 mars 2013
20 juin 2013 à 13:30
Bonjour
Merci de vos commentaires
mai c'est un code pour rire
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 juin 2013 à 17:53
Bonjour Dheroux
on peut améliorer l'algo
l'algo doit verifier la périodicité du nombre après le
séparateur décimal
si il y a répetition on applique l'algo du dessus
si non
on multiplie le nombre décimal par 10^(nombre de chiffre après le point) et ensuite on esaie de simplifier
ex 0.3 donne 3/10
0.33 donne 1/3
je laisse le travail pour alpha5
dheroux Messages postés 52 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 11 juin 2014
19 juin 2013 à 08:35
Bonjour SHAYW,
Sauf erreur de ma part, l'algo que tu mentionnes dans ton commentaire ne s'applique qu'aux nombres rationnels (périodicité trouvée dans le quotient).
Ne s'applique plus par exemple à ce nombre 0.50864736 dont on ignore par avance s'il est le quotient d'une rationalité (puisqu'il peut y avoir d'autres décimales inconnues apès le ....736)
Bonne journée
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
17 juin 2013 à 21:29
Salut
1 le séparateur décimal de mon pc est un . et non une ,
pour savoir le séparateur décimal
Dim decimalSeparator As String = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator

2 ton option strict est à OFF et non à ON
3 l'algo n'est pas efficace
ta fonction pgcd exécute parfois une boucle infinie

ex d'un algo sur ce site
http://www.webmath.com/dec2fract.html
c'est en anglais
ex 0.428571428571
tu recherches s'il y a une répétition de chiffres
dans cette ex à partir du 6 iem chiffre après le .
donc on multiplie 0.428571428571 par 10^6
ce qui donne 428571.428571
on nomme x le nombre original x = 0.428571428571

x*10^6 = 428571.428571
x = 0.428571428571

on soustrait
x*10^6 -x = 428571
999999* x = 428571
x = 428571
------
999999

en simplifiant on obtient 3/7

allez essai cette fois ci de faire un effort
dheroux Messages postés 52 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 11 juin 2014
17 juin 2013 à 16:11
Bonjour,
Petits problèmes:
Exemple: 3,14159 donne 314159/100000
Exemple: 0,036251 donne 36251/1000000
Evidemment ces fractions sont exactes mais non satisfaisantes.

D'autre part, donnez un nom plus parlant aux TextBox ... exemple TxtNombreDecimal.text plutôt que textbox1.text
Donnez aussi un nom plus parlant à vos variables.
Et puis un peu plus de soin au niveau de l'interface graphique, c'est aussi important.

Juste un petit effort, et ce sera parfait. Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.