«La valeur n'était pas dans un format correct» lors de la conversion d'une chaîne en un INT32
Question
Ceci est mon code;
string a="11.4";
int b,c;
b=2;
c= convert.toint32(a) * b
J'obtiens cette erreur;
Le fil d'alimentation n'était pas au bon format
Comment puis-je convertir "A"?
La solution
Bien a
n'est tout simplement pas une valeur entière - vous pouvez utiliser Convert.ToDouble()
Au lieu. Se prémunir contre les erreurs d'analyse en cas de possibilité d'utiliser double.TryParse()
Au lieu:
string a = "11.4";
double d;
if (double.TryParse(a, out d))
{
//d now contains the double value
}
Éditer:
En tenant compte des commentaires, bien sûr, il est toujours préférable de spécifier les paramètres de culture. Ici un exemple utilisant des paramètres indépendants de la culture avec double.TryParse()
ce qui entraînerait 11.4
à la suite:
if (double.TryParse(a, NumberStyles.Number, CultureInfo.InvariantCulture, out d))
{
//d now contains the double value
}
Autres conseils
Un tout premier coup d'œil, le nombre littéral "11.4" n'est pas un "int" réel. Essayez un autre format de conversion, comme Todouble ()
J'ai essayé de suivre le code en C # pour votre référence.
string a = "11.4";
double num_a = Convert.ToDouble(a);
int b = 2;
double ans = num_a * b;