Fonction pour arrondir des valeurs
Posté le 27/07/2021 21:31
Bon, je vous la fais courte : je suis en train de chercher pour arrondir la variable X de telle sorte que :
- Seuls les 4 premiers chiffres significatifs sont retenus;
- La décimale la plus petite à garder est 0.001 (autrement dit, revient à faire un RndFix(X, 3) )
Voici pour le moment ce que j'ai (les * sont des multiplications) :
10^Intg log Abs X*(RndFix(X,3)*10^-Intg log Abs X+1E11-1E11
Ce code pèse exactement 26 octets (en enlevant les signes de multiplications étant inutiles), et une chose est particulièrement gênante : la fonction n'est pas définie en X=0.
Si vous vous demandez ce que font les 1E11 : l'ordre de calcul est le suivant : RndFix(X,3)*10^-Intg log Abs X, qui va arrondir à 3 décimales X puis, grâce à une puissance de 10, "placer" X dans l'intervalle [1,9[. on y ajoute ensuite 1E11, et comme lors d'un calcul seuls 15 chiffres significatifs sont enregistrés cela permet d'arrondir une nouvelle fois notre variable. On ré-enlève ce 1E11, et finalement on remet la variable X à la même puissance de 10 qu'initialement. Cela peut paraître incensé/inutile, mais je n'ai pas trouver d'autre moyen étant donné qu'un RndFix dans un autre provoque une erreur...
J'aimerais ne pas à chaque fois tester si X est non nul, c'est pourquoi je fais appel à vous !
N'hésitez pas à changer complètement de méthode, mais j'ai une grosse préférence pour les fonctions que l'on peut enregistrer dans les fonctions graphiques (Y1 par ex) - qui sont faciles à évaluer, merci !
Citer : Posté le 27/07/2021 21:53 | #
Si X est nul le résultat est nul. Tu peux possiblement :
• Remplacer X par X+(X=0)
• Multiplier le résultat par (X≠0)
Si ta fonction s'appelle Y1, tu peux définir Y2 comme ceci :
et obtenir le résultat que tu veux.
Citer : Posté le 27/07/2021 23:23 | #
Nice merci !