Je fais des essais sur un nombre à 6 chiffres après la virgule NB = 254.465785.
J'ai bien essayé de créer une instance String d'une variable double (String MaChaine = String(NB)) mais soit je ne spécifie pas le nombre de chiffre après la virgule et j'obtiens un String arrondie à deux chiffres :
Je voudrai pouvoir récupérer la valeur exacte d'un nombre float ou double à 6 chiffres aprés la virgule ou plus et le transformer en string à l'identique.
Ma méthode n'est pas la bonne, j'en ai essayé d'autres mais j'avoue ne pas avoir trouvé ou compris.
Merci.
PS : j'ai cherché pendant longtemps avant de venir vous embêter de nouveau.
C'est peut-être du au fait que la nano gère mal les calculs en virgule flottante, du moins pour ma méthode.
C'est une limitation de la plateforme. C'est une conséquence du mode de codage des nombres flottants sur peu d'octets. Sur les ATmega les float et les double sont codés sur 4 octets. Utiliser les double n'apporte rien par rapport aux float.
Si tu veux plus de précision il faut passer sur un processeur plus performants. Comme te l'a expliqué J-M-L ici
En fait je souhaitai supprimer le dernier chiffre tapé sur la calculatrice.
Je vais voir si il y a moyen de coder différemment pour y arriver.
Je doute qu'il y est une solution.
Lors de la saisie, tu construis directement le nombre. Tu pourrais, en parallèle, construire la chaîne dans une autre variable pour pouvoir l'éditer.
Ou tout simplement travailler sur la chaîne tant que l'utilisateur n'a pas saisie le symbole d'une opération.
J'essaye justement de trouver une solution en prenant char par char pour faire une variable string et ensuite utiliser la méthode substring.
Je ne connais pas bien les variables char, je ne sais pas si je peux travailler directement avec sans passer par les strings et toutes leurs méthodes faciles à utiliser.
Voilà à chaque fois que je tape sur une touche de 0 à 9 et le point je peux créer parallèlement une variable du style : MaChaine += String(key) et je continue à faire mes calculs avec la variable double nbActuel .
Il faudra que je teste ça.
Je suis peut-être sur la bonne voie ou peut-être qu'il y a mieux à faire d'autant plus que je ne vois pas comment m'en sortir en dissociant ce qui est affiché de ce qui est à calculer !
Je pense avoir tout essayé.
La nano finit toujours à un moment ou à un autre par convertir en float ou double soit parce que je le lui fait faire, soit parce qu'elle le fait d'elle-même.
Le résultat est soit faux soit inexploitable dans le contexte que je souhaite.
Je passe à autre chose.