Tom's Guide > Forum > Programmation > Probleme C# basique
Mot :    Pseudo :           
 

Bonjour à tous,
j'ai un enorme , mais un enorme probleme simple a resoudre que je n'arrive pas a resoudre ( sa prouve que j'ai un petit cerveau 8-) )
voila je code ceci

//declaration de variable
double rstn;

//Calcul de la déduction forfaitaire
if (rdb_forf.Checked == true)
{
rstn = (Convert.ToSingle ( txb_rti.Text * 0.1));
txb_rest.Text = (Convert.ToString (rstn));

Mais lorsque je le test il me dit "loperateur * ne peut pas etre appliquer aux operandes de types string ou double ????Que faire
Que faire je vous en pris aider moiiiiiii!!!!!!
Merci d'avance

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

j'essaye toujours de chercher mais je ne trouve pas aider moi ....;

Répondre à kamui6184

Bonsoir,

Ca n'est pas la multiplication d'un texte avec le 0.1 qui pose problème??
Parce que multiplier une chaine de caractère par un nombre..... :-(

++

Répondre à weiouch

txb_rti.Text est une variable de type String.

donc tu peux pas multipliés une chaine de caractère par un nombre (de type double dans ton cas).

Je pense que dans ton txb_rti.Text, doit contenir un chiffre entré par l'utilisateur, cependant ce chiffre est quand meme une chaine de caractère. Il faut donc le convertir en int. Avec getint si ca existe en C#, sinon tu la recode.
Si tu vois pas comment recoder getint je t'aiderai.

Répondre à Yahourt

ben desoler je vois pa du tou coder avec get int ......
c bizarre quand meme à l'ecole je pouvais le faire .....
et chez moi je ne peux pas le faire .....

Répondre à kamui6184

Citation :


Bonsoir,

Ca n'est pas la multiplication d'un texte avec le 0.1 qui pose problème??
Parce que multiplier une chaine de caractère par un nombre.....

++



Ouned, ok j'avoue ta été plus rapide. Mais moi je propose la solution en plus de l'explication lol :-D

Répondre à Yahourt

C'etait getnbr.
Voici le code de getnbr, par contre c'est du C pur :

=================================
int getnbr(char *str)
{
int result;
int puiss;

result = 0;
puiss = 1;
while(('-' == (*str)) || ((*str) == '+'))
{
if (*str == '-')
puiss = puiss * -1;
str++;
}
while ((*str >= '0') && (*str <= '9'))
{
result = (result * 10) + ((*str) - '0');
str++;
}
return (result * puiss);
}
=================================
Donc tu modifies ton code en :

/declaration de variable
double rstn;

//Calcul de la déduction forfaitaire
if (rdb_forf.Checked == true)
{
rstn = (Convert.ToSingle ( (double)(getnbr(txb_rti.Text)) * 0.1));
txb_rest.Text = (Convert.ToString (rstn));


J'ai rajouter (double)() car en C ca peut etre source d'erreurs, peut etre qu'en C# aussi

Voila, la ca devrait marcher ;)

Répondre à Yahourt

euh desoler mais sa ne marche pas ...........

Répondre à kamui6184

pourquoi tu ferais pas ça plutôt :

rstn = Convert.ToSingle( txb_rti.Text) * 0.1;

??

Répondre à sylvain2

rstn = (Convert.ToSingle (Int32.Parse(txb_rti.Text) * 0.1));

et ca ?

Répondre à Kunji

Citation :

euh desoler mais sa ne marche pas ...........



lol comment ca, ca marche pas ? Ca met qui message d'erreur ?

Car je suis sur a 100% que getnbr marche.

Citation :

rstn = (Convert.ToSingle (Int32.Parse(txb_rti.Text) * 0.1));



Tiens, Int32 est une new classe C# ? Ca devrait marcher aussi. Mais je suis sur que ma méthode marchait aussi :p

Répondre à Yahourt
Tom's Guide > Forum > Programmation > Probleme C# basique
Aller à :

Il y a 1189 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens