IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

double to string


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 102
    Par défaut double to string
    bonjour ,
    j'aimerai sauvegarder un double dans un fichier , mais j'ai un problème le double ne se sauvegarde pas totalement exemple: valeur=-0.095343822494982647 il sauvegarde sa:-0,0953438224949826 , et qnd je le recupaire du fichier il me donne sa :-0.095343822494982605 comment je fait a ce problème Merci

  2. #2
    Membre confirmé Avatar de deejay2221
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2006
    Messages : 98
    Par défaut
    Essaye ça pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double d = -0.095343822494982605;
    string s = String.Format("{0:0.0000000000000000}", d);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 102
    Par défaut
    merci pour ta reponse , j' ai essayée sa mais regarde le résultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double d = -0.095343822494982605;
    string s = String.Format("{0:0.0000000000000000}", d);
    le résultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = -0.095343822494982600;
    il a supprime les 2 derniers chiffres et il a les remplacer par 0?!!!!

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Tu as vraiment besoin d'une telle précision ?

    Que calcule tu ?

  5. #5
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Si t'as besoin de tant de precision, le double suffit plus ; faut utiliser un decimal.

  6. #6
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    La question à se poser c'est surtout comment tu sauvegarde le double dans le fichier. Et est-ce que ce double doit être lisible (fichier texte)?

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    moi je transformerais le double en decimal avant de le mettre en string

    enfin le double il faut éviter de l'utiliser, ce n'est pas un nombre fixe !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    enfin le double il faut éviter de l'utiliser, ce n'est pas un nombre fixe !
    Ca ça m'intéresse!
    J'avais eu ce genre de soucis avec un Float, qui avait une drôle de précision (en 10e-14). Je suppose que ce soucis et du même ordre?

    Ps: désolé du HS, mais je veux pas créer un sujet pour ça

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    single et double (.net) et leurs équivalents dans les sgbd (comme le float) sont stockés en mémoire comme une formule mathématique
    pour certaines nombre l'affichage de cette formule mathématique arrondi forcément, ce qui est normal, 1/3 par exemple n'as pas de limite de chiffre

    le type decimal (decimal ou numéric sur sql server) sont enregistré sous la forme d'un nombre, avec l'emplacement de la virgule

    pour des calculs financiers les types single et double sont donc à proscrire car au bout de la feuille de paye, s'il y a des divisions vous avez des centimes qui peuvent disparaitre ! (dans sql server il y a money et smallmoney qui sont fiables aussi)

    par contre le type decimal est moins rapide pour des calculs (rien de bien grave cependant)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    (dans sql server il y a money et smallmoney qui sont fiables aussi)
    Et en ces temps difficiles sali-lala doit probablement vouloir utiliser la précision d'un dramatic small money !

  11. #11
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Money c'est que 5chiffres après la virgule.. smallmoney c'est plus?
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  12. #12
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Apparement sali-lala s'est perdu dans une infinitésimale dimension pendant que l'on fume la moquette ici bas

    Je reviens a ma question pratique : dans quel contexte sali-lala a-t-il besoin d'une telle précision ?

    On parle de de quantités plus petites qu'un dix millionniéme de milliardieme

    -0.095 343 822 494 982 6 47
    -0.095 343 822 494 982 6 05

  13. #13
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Citation Envoyé par Lyche Voir le message
    Money c'est que 5chiffres après la virgule.. smallmoney c'est plus?
    small veut dire petit ... donc ca me parait difficile

    Soutenez le CCLQC (Comité Contre Les Questions Cons)
    euh, c'en est limite une, non ?


    trouvé sur un site :
    money est un bigint (entier signé 64 bits) divisé par 10000 (8 octets)
    o -922337203685477,5808 à 922337203685477,5807
    o Equivalent d'un DECIMAL(18,4) / DECIMAL(19,4)

    smallmoney est un int (entier signé 32 bits) divisé par 10000 (4 octets)
    o -214748,3648 à 214748,3647
    o Equivalent d'un DECIMAL(10,4) / DECIMAL(9,4)

    Les plus de ce type :

    * Rapide en calcul, comme ce sont des entiers
    * Petit en taille, respectivement 4 et 8 octets
    * Dans certains cas renvoie un symbole monétaire

    Les moins de ce type :

    * Symbole monétaire renvoyé basé sur les paramètres système
    * Nombre de décimal fixe et insuffisant dans certains cas (5 aurait été idéal)
    * Non standard, contrairement au type numeric / decimal
    * Plage de valeur très restreinte pour le smallmoney
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Ouai j'assume, mais il est vendredi et c'est la fatigue qui parle.. Ce que j'entendais par "c'est plus" c'était par rapport au nombre de décimal.. Il est vrai que 4 chiffres c'est parfois pas assez
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 102
    Par défaut
    merci a vous tous voici la solution :http://msdn.microsoft.com/fr-fr/libr...sa(VS.95).aspx.
    donc il faut sauvgarder comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lignes += pt.ToString("G18");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment transformer un double en String?
    Par dessinateurttuyen dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 23h31
  2. Réponses: 3
    Dernier message: 11/08/2005, 15h54
  3. [DEBUTANT] Transformer une variable Double en STring
    Par Battosaiii dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2005, 16h43
  4. Réponses: 4
    Dernier message: 06/05/2005, 13h37
  5. [LG]Convertir le type double en string
    Par @tom@ dans le forum Langage
    Réponses: 8
    Dernier message: 18/01/2004, 19h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo