Problème Convert.To

Signaler
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005
-
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005
-
Bonjour, voila j'ai un probleme avec les calculs.

using System;

class Class1

{



static void Main(string[] args)

{

string hello = "5+1";

int k = Convert.ToInt32(hello);

Console.WriteLine("" + k);

}

}



Comment convertir le hello en entier?

Je n'arrive pas à comprendre comment faire.

Merci

10 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut,
Tu ne peux pas convertir un "5+1" en entier, tout simplement parce que la chaîne de caractère "5+1" n'est pas un entier. Par contre, tu peux convertir "6" en entier, car 6 est un entier.
int hello 5+1; // hello 6string hello2 hello.ToString(); // hello2 "6"int k Convert.ToInt32(hello2); // k 6
Console.WriteLine("{0:N0}", k); // Ecrit 6

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005

ok mais en faite sur mon programme j'ai un calcul de ce genre



class Class1

{



static void Main(string[] args)

{



int hello = 5;


for(int i =0;i<=5;i++)

{

calcul = Convert.Tostring(hello) +
Convert.Tostring(+i) ;//ou -i seloon les circonstances


int k = Convert.ToInt32(calcul);

Console.WriteLine("" + k);


}
}

}


et la je suis perdu
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
qu'est ce qui t'empeche de faire



for(int i =0;i<=5;i++)

{

calcul = hello +
i ;


Console.WriteLine("" + calcul);


}


?
Mx
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Tu essayes de faire quoi exactement ?

class Class1
{

static void Main(string[] args)
{
int hello = 5;

for(int i=0;i<=5;i++)
{
calcul = string.Format("{0}+{1}", hello,
i);

int k = hello + i;
Console.WriteLine("{0}={1}", calcul, k);
}
}
}

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005

Bah en faite j'ai un ptit bout de programme qui revient quatres fois et j'aimerais le mettre sous une procédure

Random alea = new Random();



int direction = alea.Next() % 3;



int ligne = alea.Next() % 19;



int colonne = alea.Next() % 19;



int i = 0;



bool pris = false;



string calcul
= Convert.ToString(colonne) + Convert.ToString("+i");



if (colonne + bateau[x,2] < 20)



{



do



{




if(ordi[ligne,Convert.ToInt32(calcul)] != "-")




{




pris = true;




}




i++;








}



while(i !bateau[x,2] && pris true);





if(pris ==
false)



{




for(int j = 0;j
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Quelque chose m'echappe la, je crois



Pourquoi tu fait pas :



int calcul = colonne + i;

if(ordi[ligne, calcul] != "-")

{

...

}



et pourquoi vouloir absolument que calcul soit une string ?




Mx
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005

Je veux mettre en procédure ce qui est dans le switch mais le problème
c que dans le tableau il y a un + ou un - selon direction.



for(x=0;x<=bateau.Length-7;x++)

{

for(y=0;y 1)



{



do



{




if(ordi[ligne-i,colonne] != "-")




{




pris = true;




}




i++;



}



while(i !bateau[x,2] && pris true);





if(pris ==
false)



{




for(int j = 0;j<= bateau[x,2]-1;j++)




{




ordi[ligne-j,colonne] =
Convert.ToString(bateau[x,0]);




}




placé = true;



}



}



break;



case 2 :



if (colonne - bateau[x,2] > 1)



{



do



{




if(ordi[ligne,colonne-i] != "-")




{




pris = true;




}




i++;



}



while(i !bateau[x,2] && pris true);





if(pris ==
false)



{




for(int j = 0;j<= bateau[x,2]-1;j++)




{




ordi[ligne,colonne-j] =
Convert.ToString(bateau[x,0]);




}




placé = true;



}



}



break;



case 3 :



if (ligne - bateau[x,2] < 20)



{



do



{




if(ordi[ligne+i,colonne] != "-")




{




pris = true;




}




i++;



}



while(i !bateau[x,2] && pris true);





if(pris ==
false)



{




for(int j = 0;j<= bateau[x,2]-1;j++)




{




ordi[ligne+j,colonne] =
Convert.ToString(bateau[x,0]);




}




placé = true;



}



}



break;

}

}

}

}
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005

int calcul = colonne + i;

if(ordi[ligne, calcul] != "-")

{

...

}

Oui je pourrais le faire mais le probleme cque selon la direction

ca ne sera pas toujours
ordi[ligne, calcul]

en faite voila

suivant direction

case 0


int calcul = colonne + i;

if(ordi[ligne, calcul] != "-")

{

...

}

case 1


int calcul = ligne - i;

if(ordi[calcul,colonne] != "-")

{

...

}

case 2


int calcul = colonne - i;

if(ordi[calcul,calcul] != "-")

{

...

}

case 3


int calcul = ligne + i;

if(ordi[calcul,colonne] != "-")

{

...

}



voila les quatresz cas. mais je voulais faire ca plus simplement et moins long, y'a pas d'autres méthodes?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Bah oui ca j'ai bien compris, mais ca repond pas a ma question.

Je vois pas en quoi calcul doit etre une string, et donc si tu le convertis en int, quel probleme cela posera ?



Mx
Messages postés
8
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
7 mai 2005

bah en faite javais pas penser a ta manière dont j'ai chercher plus compliquée ^^"

lol

Avec le switch ca fait bcp de ligne mais ca doit être le seul moyen non?