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 :

Traitement de données capteurs : arrondi et mise en place de virgule [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Traitement de données capteurs : arrondi et mise en place de virgule
    Bonjour à tous !

    Alors voilà, je réalise actuellement une application UWP qui a pour vocation de récupérer la trame d'une sonde de courant, et de l'afficher sur un écran. La réception fonctionne, l'affichage également, mais la sonde renvoie une valeur en mA. J'aimerai : convertir cette valeur en A, tout en conservant un chiffre de précision après la virgule. L'idée est d'effectuer un arrondi sur ce chiffre après la virgule, afin de conserver une précision acceptable pour mon application.

    Si quelqu'un aurait une idée sur la manière de procéder, ou sur les méthodes que je pourrai potentiellement utiliser, je lui en serai très reconnaissant.

    Merci d'avance, et bon après-midi !!!

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Deux possibilités :
    • La première, suggérée par ericlm128, est d'utilser la méthode Math.Round
    • la seconde, est de forcer l'affichage dans le format adéquat. Par exemple, en utilisant Single.ToString


    Les deux méthodes ne sont pas équivalente. La première va arrondir les valeurs manipulées. Il y aura donc une perte de précision en cas de calcul. La seconde ne modifie que la manière donc les valeurs sont affichées, mais n'aura pas d'incidence sur les calculs.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci pour ces deux propositions, c'est number.ToString qui va correspondre le mieux à ce que je recherche.
    Dans les deux cas, la référence est prise dans mscorlib.dll, et j'ai lu qu'il était implicitement référencé.
    Cependant, les deux méthodes ne sont pas reconnues par le compilateur...

    Une idée d'où cela pourrait provenir ?

  5. #5
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Tu as un message d'erreur ? Il est possible qu'il te manque un using (System, probablement). Visual Studio ne te propose rien si tu mets le curseur sur l'erreur et que tu tapes Ctrl + ; ?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Plus de message d'erreur, j'ai tenté ça :

    Ipvalue= Ipvalue / 1000;
    string IP = Ipvalue.ToString("N1");

    Et j'affiche IP avec un binding sur mon xml, mais cela ne donne rien. (Pas d'erreur toutefois).

    Mais sur le principe ca troncature ma valeur à la division donc ça ne va pas...

    J'ai long Ipvalue=32782 par exemple, valeur en mA. Moi je voudrais le passer en A, ce qui donnerait Ipvalue=32,782 , puis ensuite l'arrondir (avec math.round pour le coup) pour afficher Ipvalue=32,8A.

  7. #7
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Attention ! Quel est le type de IpValue ? Si c'est un entier (int, long, etc...) alors c'est tout à fait normal que cela ne fonctionne pas, car la division par 1000 est alors une division entière, et l'assignation du résultat à un entier aurait de toutes les façons arrondi le résultat.

    Il faut impérativement passer par une variable de type float ou double (decimal pourrait aussi fonctionner). Pour la constante 1000, tu peux la remplacer par 1000.0 pour forcer une valeur double (ou 1000.0f pour une valeur float).
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour votre aide, j'ai finalement réussi en passant ma variable en float et en utilisant Math.Round.

    Je suis super content, bonne après-midi à tous !

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

Discussions similaires

  1. [MySQL] PB traitement de données !
    Par Tr@nkill dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/04/2006, 11h36
  2. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  3. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06
  4. traitement des données avant envoie dans MySQL
    Par italiasky dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 07/02/2006, 22h50
  5. Programmation pour traitement de données
    Par benbois dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 19/10/2005, 17h01

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