Page 1 of 2

Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 29 Sep 2018, 22:42
by Billboule
Bonsoir !

Je cherche comment trouver le nombre de chiffres après la virgule d'un nombre (décimal par évidence ._.).
Par exemple, je veux (en utilisant une formule ou je ne sais quoi) que si le nombre en question est 500,315 et que je programme la formule sur 3 chiffres après la virgule, le résultat logique soit 1, alors que si ça avait été 500,32 et que la formule serait sur 3 chiffres après la virgule le résultat logique serait 0. Seulement je n'arrive pas à trouver cette formule ou comment faire des calculs pour arriver à cela. Auriez-vous une solution ? :)

Billboule

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 30 Sep 2018, 00:57
by critor
Il te faut impérativement une formule ?
Ou est-ce qu'un algorithme/programme suffirait ?

Merci.

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 30 Sep 2018, 15:30
by UnCurieux
Pour un algorithme tu pourrais mettre le nombre dans une chaîne et ensuite l'algo compte combien de chiffres il y a après la virgule :
tu rentres 500,315 dans Chaîne 1, l'algo regarde chaque partie (d'abord 5 puis 0 puis 0 puis ,) et à partir du moment où il a reconnu une virgule il compte le nombre de parties après la virgule. S'il trouve 3 et que tu avais choisi 3 chiffres après la virgule, alors il envoie 1, sinon il envoie 0.

Il y a peut-être un moyen plus simple mais sur le coup je ne pense qu'à ça.

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 17:25
by UnCurieux
Bon j'ai fait le programme c'est cadeau :

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 19:13
by critor
Merci à toi. :)

Juste pour toi, on peut faire beaucoup plus simple en restant dans le cadre numérique - 6 lignes :
Code: Select all
partDéc(Rep→N
0→D
While partDéc(N
10partDéc(N→N
D+1→D
End
D

Image

Et je pense que l'on peut même faire encore plus court. ;)

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 19:19
by critor
5 lignes : :)
Code: Select all
partDéc(Rep
While partDéc(Rep
1+ent(Rep)+partDéc(10Rep
End
ent(Rep

Image

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 19:28
by critor
4 lignes avec un niveau Terminale S : :D (suis bien entraîné en ce moment, avec tous les trucs tordus que je vous ai codés pour le Triconcours :p)
Code: Select all
While partDéc(réel(Rep
ent(Rep)++partDéc(10Rep
End
imag(Rep

Image

Qui y arrive en 3 lignes ? ;)

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 19:35
by Limonadd
Code: Select all
While partDéc(réel(Rep
ent(Rep)++partDéc(10Rep:End
imag(Rep


ça fait 3 lignes hihihi , nan je plaisante :P

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 19:55
by critor
:P

@UnCurieux un possible défaut de l'instruction versChaîne(), outre son incompatibilité avec les modèles non-CE, c'est qu'elle ne prend que les décimales affichées et pas l'ensemble des décimales présentes en mémoire :
Image
^ Ici nous avons 14 décimales en mémoire mais la calculatrice n'en affiche que 10, et versChaîne() ne fait pas mieux.

Re: Déterminer le nombre de chiffre après la virgule?

Unread postPosted: 01 Oct 2018, 20:03
by critor
Voilà, 1 ligne si l'on accepte les inconvénients de versChaîne(), ce qui se rapproche donc d'une "formule" comme demandé : :#tritop#:
Code: Select all
­-2+longueur(versChaîne(abs(partDéc(Rep)),1

Image

Qui y arrive en 0 ligne ? :troll: