Bonjour , j'ai deux variable de type word
Pièce jointe 464852
je veux les mettre dans une seule variable de façon qu'elle soit égale
-15812,20971
Vous avez une idée
Version imprimable
Bonjour , j'ai deux variable de type word
Pièce jointe 464852
je veux les mettre dans une seule variable de façon qu'elle soit égale
-15812,20971
Vous avez une idée
Bonjour,
Je pense qu'il faudrait que tu précises ce que tu veux faire car énoncé comme tu le fais, c'est assez incompréhensible.
Que veux dire je veux les mettre dans une seule variable de façon qu'elle soit égale ?
Bonjour,
Pourquoi ne pas utiliser un tableau ?
struct / class / tuple
Ce que je veux faire , c'est que par exemple
si j'ai
int a = 2;
int b = 3;
je veux créer une nouvelle variable, C par exemple de façon qu'elle prends la variable a elle ajoute une virgule puis elle ajoute la variable b étant nombre décimal aprés virgule
et du coup C = 2,3
c'est proche de la concaténation de deux chaines de caractères sauf que dans mon cas j'ai des variables Uint16 et non pas des string
Bonjour,
Tu peux par exemple passer par un decimal.Parse(), en construisant la chaine passée en paramètre.
Par exemple:
Tu as des exemples dans le lien pour gérer les formats (par exemple le séparateur de décimal).Code:
1
2 Decimal.Parse($"{Value1}.{Value2}");
Tatayo.
Merci, c'est gentil
Niveau performances, je ne suis pas certain que passer par 2 ToString() puis un Parse() soit ce qu'il y a de plus performant.
De plus, l'exemple de Tatayo est trop succint : selon la locale du PC, le séparateur de décimale sera . ou , donc soit il faut déduire ce séparateur du contexte actuel, soit il faut le forcer au moment du Parse().
Je proposerais plutôt de conserver du cacul numérique uniquement :
Code:
1
2
3
4
5
6
7
8
9
10
11
12 ushort a = 1; // ushort = WORD cf. https://www.displayfusion.com/Discussions/View/converting-c-data-types-to-c/?ID=38db6001-45e5-41a3-ab39-8004450204b3 ushort b = 2; // Conversion des valeurs d'entrée dans le type de destination pour éviter des soucis d'arrondis decimal af = a; // Le résultat attendu est un décimal (et non un float/dlouble, attention !) decimal bf = b; // Calcul du nombre de décimales de b (ou savoir de combien le décaller) decimal nbbdigits = Math.Floor(Math.Log10(b) + 1); // cf. https://stackoverflow.com/questions/4483886/how-can-i-get-a-count-of-the-total-number-of-digits-in-a-number // Et la magie decimal c = a + b / (decimal)Math.Pow(10, nbbdigits - 1);
En toute logique ça devrait te donner le résultat attendu. Je pense que ce sera plus performant... Utile si tu dois faire ce traitement sur une liste et non unitairement. Sinon la méthode de tatayo sera peut-être plus lisible (mais attention à la locale :))
Bien vu ;)
bonjour
Les nombres complexes sont tes amis ..
Referencer l'assembly System.Numeris
et ajouter la directive suivante dans ton projet :
bon code...Citation:
using System.Numeris;