Comment formater en nombre entier pour afficher des pourcent
Résolu/Fermé- Comment formater en nombre entier pour afficher des pourcent
- Comment formater un pc - Guide
- 94 pourcent jeu - Télécharger - Puzzle & Réflexion
- Excel afficher 0 avant nombre - Guide
- Formater clé usb mac - Guide
7 réponses
Modifié le 4 sept. 2022 à 00:29
PositionAchatTextBox.Text.Trim().ToString(); //Tu peux retirer la fin PositionAchatTextBox.Text.Trim(); //Une chaine est une chaine.
//Peut être en remplaçant doubleResult2.ToString("##.## %") // Par doubleResult2.ToString("## %")
A moins que j'ai pas compris.
4 sept. 2022 à 00:57
Bonsoir à tous les 3.
Quicksilvain, je me suis permis de déplacer ta question dans le forum C#, car le code que tu montres est dans ce langage, pas en VB.
Évidemment, si tu le testes dans un projet VB, ça ne peut pas marcher.
Si et seulement si ton projet est du VB.Net, ça se traduit (car en vrai VB.Net ce n'est pas du VB, c'est du C# avec une "skin" vb) https://search.brave.com/search?q=C%23+to+VB&source=desktop par contre, si ton projet, c'est du VBA, du VB6 ou du VBScript, c'est mort.
Ici, voir mon commentaire
Double doubleValueVente = 0.0;// tu n'as pas besoin d'initialiser une valeur, car ensuite, tu l'utilises dans TryParse avec le modificateur "out" qui veut dire "peut importe ce que ça vaut en entrée, ça ne sert qu'en sortie". Mais si tu veux absoluement y mettre une valeur initiale ou valeur par défaut, si le tryParse échoue, 0 suffit, la variable est de type double, donc le compilateur "sait" que c'est 0.0 et pas le int 0 Double doubleValueAchat = 0.0; //idem if (Double.TryParse(stringValueVente, out doubleValueVente) && Double.TryParse(stringValueAchat, out doubleValueAchat))
Quand tu dis
j'ai essayé mais ça fonctionne pas
Ça veut dire quoi pour toi ?
- Ça n'affiche pas un nombre formaté plus ou moins comme un pourcentage (je n'ai pas essayé, mais on dirait quand même que ça devrait faire ça) ?
- Ça n'affiche pas le résultat que tu attends, genre achat 50, vente 56, plus-value + 12 % ? C'est certain, ça ne fait pas ça, ce n'est pas le calcul que tu as codé.
- Ton calcul => (56-50)/(50*100) => 6 / 5000 => 0.0012 arrondi à 2 décimales 0.
- Le bon calcul => (56-50) / 50 * 100 => 6/50 * 100, 0.12 * 100 => 12, arrondi à 2 décimales 12.
En plus 12% ce n'est pas la valeur "mathématique", si tu veux faire des calculs derrière, en principe, tu auras besoin de 0.12. Mais pour nous, simples humains, c'est plus parlant d'afficher 0.12 en pourcentage.
Dans ce cas,
double pourcent = 0.12 tbxPourcent.Text = pourcent.ToString("P");
https://docs.microsoft.com/fr-fr/dotnet/api/system.double.tostring?view=net-6.0
@ NHenri, depuis la mise à jour de l'éditeur de texte, la coloration C# ne marche plus, le meilleur compromis que j'ai trouvé, c'est C++, j'ai modifié ton message en conséquence. De même, pour VB, il faut mettre Basic et pas VBScript.
4 sept. 2022 à 10:19
Merci, j'avais un doute, j'essayerai d'y penser la prochaine fois :)
Merci Whismeril, Oui désolé je me suis trompé de section ;)
Encore une fois oui je me suis trompé dans le calcul il fallait bien supprimer les parenthèses.
Avec le bon calcul, et avec ce code ci-dessous si je fais PositionAchat = 20 et PositionVente = 27 je trouve 3 500.00 %
ResultatTauxDeVariation.Text = " " + doubleResult2.ToString("##.## %");
Avec ce code ci-dessous si je fais PositionAchat = 20 et PositionVente = 27 je trouve 3500 %
ResultatTauxDeVariation.Text = " " + String.Format("{0:##.##%}", doubleResult2);
4 sept. 2022 à 15:51
bonjour,
Le résultat que tu obtiens, c'est celui que tu souhaites?
Sinon, peux-tu montrer les instructions que tu utilises pour faire le "bon calcul"?
4 sept. 2022 à 16:02
et avec
ResultatTauxDeVariation.Text = " " + doubleResult2.ToString("##.##") + " %";
?
Non j'aimerais qu'il affiche 35 %
Voici le code complet
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculatrice_crypto
{
public partial class Form1 : Form
{
private const string V = "#,#00.00";
private const string V1 = "0.0";
public Form1()
{
InitializeComponent();
}
private void buttonTauxDeVariation_Click(object sender, EventArgs e)
{
string stringValueAchat = PositionAchatTextBox.Text.Trim().ToString();
string stringValueVente = PositionVenteTextBox.Text.Trim().ToString();
if (!string.IsNullOrEmpty(stringValueVente) && !string.IsNullOrEmpty(stringValueVente))
{
Double doubleValueVente = 0.0;
Double doubleValueAchat = 0.0;
if (Double.TryParse(stringValueVente, out doubleValueVente) && Double.TryParse(stringValueAchat, out doubleValueAchat))
{
Double doubleResult2 = (doubleValueVente - doubleValueAchat) / doubleValueAchat * 100;
ResultatTauxDeVariation.Text = " " + String.Format("{0:##.##%}", doubleResult2);
}
else
{
MessageBox.Show("Erreur: Veuillez entrer uniquement des nombres !",
"Calculatrice Crypto", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question4 sept. 2022 à 16:27
Encore une fois oui je me suis trompé dans le calcul il fallait bien supprimer les parenthèses.
Comment ça encore une fois, tu n'en as pas parlé avant.
Pour afficher ton code, merci de sélectionner C++, et ça je l'ai déjà dit.
À part les parenthèses, le code que tu présentes ne tient compte d'aucune des préconisations que nous t'avons faites.
Peux-tu mettre un point d'arrêt à cette ligne
Double doubleResult2 = (doubleValueVente - doubleValueAchat) / doubleValueAchat * 100;
Et espionner les variables
- stringValueAchat
- stringValueVente
- doubleValueAchat
- doubleValueVente
Et nous dire ce qu'il y a réellement dedans.
4 sept. 2022 à 18:36
Il suffit de retirer le % de la chaîne de format, comme suggéré en #8.
Console.WriteLine(String.Format("{0:##.##%}", 12));
affiche "1200%"
4 sept. 2022 à 22:43
ou d'utiliser "P" comme suggéré en #4.
C'est bien ce que j'ai dit, à part les parenthèse, il n'a tenu compte de rien de se qu'on a pu lui dire....
J'ai dis "encore une fois" car je me suis trompé de section et me suis aussi trompé dans le calcul.. Je me sis mal exprimé ;)
Il y a que "Inserer un extrait de code" lorsque je reponds, je trouve pas C++
Pouvez vous m'expliquer la procedure avec le point d'arrêt ?
Pour utiliser correctement l'insertion d'extrait de code, voir ici
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Savoir déboguer est plus important que savoir coder, le point d'arrêt, c'est la base de la base du débogage.
Voir ici https://docs.microsoft.com/fr-fr/visualstudio/debugger/debugger-feature-tour?view=vs-2019
3 sept. 2022 à 16:24
Merci d'avoir repondu.. j'ai essayé mais ça fonctionne pas
3 sept. 2022 à 20:08
bonjour,
montre-nous le code complet que tu as essayé. Avec un exemple de données, et le résultat obtenu. Explique aussi le résultat attendu.
D'où vient ce code? L'as-tu écrit? A quelle ligne penses tu obtenir un résultat entier?