Olympus a écrit:Salut !
Au lieu de %f tu mets tout simplement %.Nf en remplaçant N par le nombre de chiffres que tu souhaites voir après la virgule.
Dlzlogic a écrit:Bonjour,
En C, il existe deux types de variables en virgule flottante, les float qui ont une précision de 7 chiffres significatifs et sont définis sur l'intervalle 3.4 10^-38 à 3.4 10^38
des double qui ont une précision de 15 chiffres significatifs et sont définis sur l'intervalle 1.7 10^-308 à 1.7 10^308.
Pour être exhaustif, il y a aussi les long double, que je déconseille.
Si on veut obtenir de nombres avec beaucoup de chiffres, il faut utiliser des bibliothèques spéciales.
Par ailleurs, par curiosité, quand pouvez-vous avoir besoin de nombres avec autant de chiffres significatifs ?
Dlzlogic a écrit:Bon alors il y a deux solutions
1- vous trouver cette bibliothèque qui donne le nombre de chiffres significatifs désirés, à mon avis sans intérêt.
2- il s'agit d'un exercice et par exemple l'utilisation du développement en serie pourrait être une bonne méthode.
Je suis curieux, comment calculez-vous sqrt(2) ? J'ai déjà calculé sqrt(N), mais mon objectif était au contraire de limiter le nombre de chiffres significatifs.
Dlzlogic a écrit:oui, ça j'avais compris.
Mais ma question, pourquoi avez-vous besoin de plus de 15 décimales ?
1- pour une étude particulière qui ne me regarde pas
2- pour un exo posé par un prof,
3- parce que l'informatique c'est même pas fichu de calculer une valeur quelle que j'en ai envie
4- autre raison ...
A mon avis, il faut déjà une bonne raison pour travailler en double au lieu du float.
en vue d'un tpe, j'ai fait moi même un programme, et j'ai besoin d'avoir plus de décimal si possible, mais si c'est pas possible, les 15 décimal que j'ai me suffirons
Les machines ont tout de même des limites, le double prend deux fois plus de place que le float.
J'avoue ne jamais avoir testé la différence de temps d'exécution entre le float et le double, mais je serais prêt à parier que ce n'est pas le même. Il est probable qu'il est plus long de traiter 64 bits que 32 bits.
Dans mon choix, je pense surtout au stockage, gestion mémoire etc.
Je ne connais pas ce typedef Scalar, mon compilateur non plus, de quoi s'agit-il ?
Il faut aussi éviter de faire la confusion entre "nombre de chiffres après la virgule" et "nombre de chiffres significatifs".
Le n'ai pas bien compris où en voulait en venir l'auteur du lien que tu as cité. Il imprime toujours le même nombre (cad même précision). Je crois savoir pourquoi, le format utilisé est "%lf". Le modificateur "l" attend un long en entrée. Le format "%f" imprime aussi bien le float que le double.
Mes questions "pourquoi utiliser du double" et "pourquoi 15 chiffres significatifs pour calculer racine(2)" restent en suspens.
(à l'occasion, dis pas trop de mal du C, il y en a beaucoup qui l'utilisent et s'en portent fort bien.)
Je vais juste répondre sur ce point.Ben un float ou un double dans la stack, ca change pas grand chose lol. Et si yen a bcp il vaut peut-être mieux passer dans la heap...sous risque d'overflow
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :