«La valeur n'était pas dans un format correct» lors de la conversion d'une chaîne en un INT32

StackOverflow https://stackoverflow.com/questions/9027204

  •  14-11-2019
  •  | 
  •  

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"?

Était-ce utile?

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top