Transformer un nombre avec virgule en fraction

Soyez le premier à donner votre avis sur cette source.

Vue 4 893 fois - Téléchargée 845 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
-
Bonjour
Merci de vos commentaires
mai c'est un code pour rire
cs_ShayW
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46 -
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
-
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
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46 -
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
-
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.