Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 06 Jui 2013, 19:39
Bonjour,
Essaye:
Code
Disp arrondi(B,2
Petite remarque: en mode scientifique, il y a un petit problème à ce niveau.
Ex:
Code
12.343->A
Disp arrondi(A,2
donnera (en mode normal):
12.34
Et en mode scientifique:
1.234*10^1
Je suppose que tu voulais qu'en mode scientifique il soit affiché "1.23*10^1" non?
(Si c'est le cas, signale le, je vois un moyen de le faire mais il faut que j'y réfléchisse 2 secondes )
EDIT: Je donne mon alternative, au cas où (va plus loin pour une solution qui marche à tous les coups):
Code
Disp arrondi(A,N-partEnt(log(A //N correspond au nombre de chiffres après la virgule souhaités
Celle ci ne marche que dans le cas où tu es sur que le nombre est strictement inférieur à 10^(N+1) (soit A<1000 si N=2)...
Je cherche pour que ce soit valide dans tout les cas je te tiens au courant
Re-EDIT:
Alors voilà une solution qui marche quel que soit le nombre:
(On cherche à afficher A avec N nombres après la virgule):
//Et pour l'utiliser dans un autre prgm
2->N //Tu fixes le nb de chiffres après la virgule au début du prgm (ou tu peux carrément remplacer N par ce nombre dans le prgm ARONDI si tu est sur de toujours vouloir ce nombre de chiffres)
1234.438129Y+137890.312907*10^(-EA67->A //Calcul hyper méga compliqué
A //C'est pour stocker A dans Rép (Rép est une variable qui stocke le résultat du dernier calcul effectué, donc pas besoin de cette ligne si le dernier calcul avait pour résultat la valeur que tu veux afficher)
prgmARONDI
//Pour afficher B le résultat de A*123.783612 avec un arrondi de 2, il suffit de faire:
2->N
A*123.783612->B
prgmARONDI
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 06 Jui 2013, 23:17
STOP ! Vous vous donnez du mal pour rien car la solution est beaucoup plus simple.
Cause 1 :
La fonction arrondi ne met pas les variables à jour, il faut stocker ou réutiliser immédiatement le résulat.
Cause 2 :
Placer le format Sci AVANT le calcul d'arrondit contrôlera correctement l'arrondi dans la plupart des cas.
Cause 3 (la moins évidente, voire pas du tout évidente) :
La fonction arrondi avec paramètre arrodi toujours le nombre réel, pas la mantisse (nombre autre que l'exposant) de l'écriture scientifique.
Tandis que la fonction arrondi sans argument respecte à la fois les modes et l'écriture scientifique.
Code
EffEcr
Menu("CONVERTIR","A.L EN KM",1,"KM EN A.L",2
Lbl 1
Input "DONNEE ",A
9,4607304726*10^12*A -> B
Sci
Fixe 2
Disp B
Flottant
Pause
Stop
Lbl 2
Input "DONNEE ",C
1,057000834*10^(-)13*C -> D
Sci
Fixe 2
Disp D
Flottant
Pause
Code
EffEcr
123.456->A
Normal
Flottant
Disp A // 123.456
Disp arrondi(A,2 // 123.46
Fixe 2
Disp A // 123.46
Disp arrondi(A // 123.46
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 07 Jui 2013, 17:29
Je reconnais que c'est pas évident au premier abord .
Et le manuel n'est pas assez clair.
Citer
arrondi( donne un nombre, une expression, une liste ou une matrice arrondie à #decimales (<=9). Si #decimales n’est pas mentionné, valeur est arrondi aux chiffres affichés, soit jusqu’à 10 chiffres.
arrondi(valeur[,#decimales])
Si on s'intéresse quand même aux formules voici mes réflexions.
Je préfère utiliser l'arrondi plutôt que les troncatures puisque c'est l'objectif de ce sujet.
Et peu importe si on a des variables ou Rép/Ans.
Se rappeler que partEnt=int et ent=iPart (erreur officielle de TI) permet d'éviter des erreurs pour des nombres négatifs, y compris les exposants qu'on traite.
Je fais attention au nombre zéro.
Code
123.456->A
2->B
If A
Then
10^(iPart(log(abs(A))))round(A10^(-iPart(log(abs(A)))),B)
Else
0
End
Disp Ans
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)