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 :

Problème de conversion


Sujet :

C#

  1. #21
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par mrrenard Voir le message
    Question à deux balles,
    Tout les testes sont fait avec le framework 2.0 ou certain client sont sous linux avec mono 2.0?
    Parceque le framework ca marche, mono aussi mais il est possible que code compiler par framework soit illisible par mono
    Dans ce cas mono n'aurais plus aucun sens.
    Ton code compilé donne de l'IL.
    Et j'espère bien que mono sait lire l'IL !!! Et le même.

    Si ce n'est pas le cas, je trouve cela étonnant.

  2. #22
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par mrrenard Voir le message
    Sinon j'ai une grande suggestion :
    la classe Convert.ToDouble(string s) devrait te certifier la réussite. Après tout, si microsoft l'a faite c'est qu'il doit y avoir une raison. Peut-être qu'elle corrige ce gros bug.

    D'ailleurs c'est indiqué sur la msdn!
    http://msdn2.microsoft.com/fr-fr/lib...le(VS.80).aspx
    Citation Envoyé par mrrenard Voir le message
    Voir mon dernier message que je viens à l'instant de modifier
    Double.Parse(string s) != Convert.ToDouble(string s)
    la méthode Parse est une implémentation d'e l'interface IConvertible et est déconseiller par microsoft.
    En gros, on peut se demander pourquoi la méthode Parse est déconseiller, mais en attendant, autant utilisé des méthodes fiables à 100% (enfin j'espère).
    Comme indiqué plus haut, les 3 méthodes ont été testées.
    (Convert && TryParse && Parse )


    Citation Envoyé par mrrenard Voir le message
    Comprend pas!

    Chez moi ca marche nickel, pourrais-tu nous refiler tout le code y compris la winform et le code du designer?
    Voici le code de la seule et unique fenêtre de l'application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    namespace Conversion
    {
        partial class Form1
        {
            /// <summary>
            /// Variable nécessaire au concepteur.
            /// </summary>
            private System.ComponentModel.IContainer components = null;
     
            /// <summary>
            /// Nettoyage des ressources utilisées.
            /// </summary>
            /// <param name="disposing">true si les ressources managées doivent être supprimées*; sinon, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
     
            #region Code généré par le Concepteur Windows Form
     
            /// <summary>
            /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
            /// le contenu de cette méthode avec l'éditeur de code.
            /// </summary>
            private void InitializeComponent()
            {
                this.textBox1 = new System.Windows.Forms.TextBox();
                this.button1 = new System.Windows.Forms.Button();
                this.label1 = new System.Windows.Forms.Label();
                this.label2 = new System.Windows.Forms.Label();
                this.label3 = new System.Windows.Forms.Label();
                this.SuspendLayout();
                // 
                // textBox1
                // 
                this.textBox1.Location = new System.Drawing.Point(73, 12);
                this.textBox1.Name = "textBox1";
                this.textBox1.Size = new System.Drawing.Size(100, 20);
                this.textBox1.TabIndex = 0;
                // 
                // button1
                // 
                this.button1.Location = new System.Drawing.Point(86, 50);
                this.button1.Name = "button1";
                this.button1.Size = new System.Drawing.Size(75, 23);
                this.button1.TabIndex = 1;
                this.button1.Text = "Convertir";
                this.button1.UseVisualStyleBackColor = true;
                this.button1.Click += new System.EventHandler(this.button1_Click);
                // 
                // label1
                // 
                this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                this.label1.Location = new System.Drawing.Point(2, 88);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(238, 20);
                this.label1.TabIndex = 2;
                this.label1.Text = "TryParse";
                this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                // 
                // label2
                // 
                this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                this.label2.Location = new System.Drawing.Point(6, 123);
                this.label2.Name = "label2";
                this.label2.Size = new System.Drawing.Size(234, 20);
                this.label2.TabIndex = 2;
                this.label2.Text = "Parse";
                this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                // 
                // label3
                // 
                this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                this.label3.Location = new System.Drawing.Point(6, 160);
                this.label3.Name = "label3";
                this.label3.Size = new System.Drawing.Size(234, 20);
                this.label3.TabIndex = 2;
                this.label3.Text = "Convert";
                this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(247, 207);
                this.Controls.Add(this.label3);
                this.Controls.Add(this.label2);
                this.Controls.Add(this.label1);
                this.Controls.Add(this.button1);
                this.Controls.Add(this.textBox1);
                this.Name = "Form1";
                this.Text = "Conversion";
                this.ResumeLayout(false);
                this.PerformLayout();
     
            }
     
            #endregion
     
            private System.Windows.Forms.TextBox textBox1;
            private System.Windows.Forms.Button button1;
            private System.Windows.Forms.Label label1;
            private System.Windows.Forms.Label label2;
            private System.Windows.Forms.Label label3;
        }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Conversion
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
     
                double t;
                string s = textBox1.Text.Replace('.',',');
                try
                {
                    double.TryParse(s, out t);
                    label1.Text = t.ToString(); ;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
     
                try
                {
                    t = double.Parse(s);
                    label2.Text = t.ToString(); ;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
     
                try
                {
                    t = Convert.ToDouble(s);
                    label3.Text = t.ToString();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
    }
    Citation Envoyé par mrrenard Voir le message
    Question à deux balles,
    Tout les testes sont fait avec le framework 2.0 ou certain client sont sous linux avec mono 2.0?
    Parceque le framework ca marche, mono aussi mais il est possible que code compiler par framework soit illisible par mono
    Les postes testés sont tous sous XP SP2 avec le Framework 2.0.
    La petite application utilise le framework 2.0.

    En pièce jointe, deux petits imprime écran avec la même application lancée sur les deux postes.
    (Ne pas se fier à l'apparence des fenêtres, les deux postes sont sous XP)

    Moi je dis .... L'année 2008 commence bien !
    Images attachées Images attachées   

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 141
    Points : 110
    Points
    110
    Par défaut
    Moi j'ai pas le problème tout fonctionne bien.
    Toutefois, essaye en mettant les Label avec la propriété AutoSize à true, on sait jamais.
    Je dis pas ça au hasard, j'ai fait un composant un jour sur un poste avec XP. Lorsque je l'ai porter sous un vista toute les dimensions foiraient. Faut peut-être demander au deuxième poste de revenir à un thème de bureau XP classique pour voir.

    Ou alors envoyer des messageBox.Show(label.Text); à tout va pour vérifier que le bug ne vient pas de l'affichage.

  4. #24
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par mrrenard Voir le message
    Moi j'ai pas le problème tout fonctionne bien.
    Toutefois, essaye en mettant les Label avec la propriété AutoSize à true, on sait jamais.
    Je dis pas ça au hasard, j'ai fait un composant un jour sur un poste avec XP. Lorsque je l'ai porter sous un vista toute les dimensions foiraient. Faut peut-être demander au deuxième poste de revenir à un thème de bureau XP classique pour voir.

    Ou alors envoyer des messageBox.Show(label.Text); à tout va pour vérifier que le bug ne vient pas de l'affichage.
    +1

    Mais je crois me souvenir que tu as testé en envoyant la valeur dans un fichier non ?

    Essayes un truc :
    soustrait à ton double sa propre valeur et affiche le résultat.
    Si tu vois 0 sur les machine bugant, alors c'est un problème d'affichage.
    Si tu vois -80 tu es dans la m@*$µ

    Essayes aussi le reconversion vers l'origine, c'est à dire fait un ConvetToStringà ton double pour l'afficher dans la texte box.

Discussions similaires

  1. problème de conversion de dimension dans BUSINESS OBJECT
    Par greatmaster1971 dans le forum Deski
    Réponses: 4
    Dernier message: 28/04/2014, 13h15
  2. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  3. Problème de conversion 3DS->.X
    Par JBernn dans le forum DirectX
    Réponses: 5
    Dernier message: 08/04/2004, 19h08
  4. Problème de conversion unicode
    Par djmalo dans le forum C
    Réponses: 5
    Dernier message: 09/03/2004, 11h48
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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