Un FormatException exceptionnel - C#/.NET managed - Programmation
Marsh Posté le 15-06-2010 à 15:24:16
manu f a écrit : Bonjour,
|
Bonjour,
Je ne suis pas sur de ce que tu as ecrit mais si je comprends bien tu essayes de mettre la valeur 4.0 dans un int c'est bien cela?
Marsh Posté le 15-06-2010 à 15:32:36
FLeFou a écrit : |
+1
c'est pas Int.Parse qu'il faut utiliser, mais Double.Parse (ou bien Convert.ToDouble)
Marsh Posté le 15-06-2010 à 15:32:36
Tes paramètres régionaux ils disent quoi ?
En simplifiant au maximum (on oublie excel, interop et cie, on appelle en dur int.Parse avec les différents cas possibles), tu n'arrives pas à élucider le truc ?
A mon avis, int.Parse ne doit pas aimer les décimaux en entrée, il faut peut être d'abord parser en Double/Single et ensuite caster en int.
edit : en fait j'en suis même sûr .
Marsh Posté le 15-06-2010 à 15:51:21
Je viens de corriger le bug (depuis ce matin je suis dessus quand même -_-').
Les Convert etc... j'avais déjà testé et j'avais toujours le même problème, la seule chose que j'ai testé et qui fonctionne c'est :
Code :
|
Ca doit pas être la meilleur façon de faire, mais je dois avouer que ce bug m'a pris la tête et le client assez pressé ^^.
Merci quand même pour vos réponses
Marsh Posté le 15-06-2010 à 16:00:34
manu f a écrit : Je viens de corriger le bug (depuis ce matin je suis dessus quand même -_-').
|
Si je comprends bien ton code dans le 1er cas si c'est 4,0 alors tu substring de facon a garder seulement le 4
Parcontre ton else tu remplace la virgule par un point mais tu n'y vas que si il n'y a pas de virgule dans ton élément donc je vois pas trop pq tu fais cela ^^
Enfin si cela fonctionne et que tu l'a bien testé c'est l'important.
Marsh Posté le 15-06-2010 à 17:20:49
T'as raison j'ai oublié de virer le replace, on va mettre ça sur le coup de la fatigue
Marsh Posté le 15-06-2010 à 17:22:19
manu f a écrit : T'as raison j'ai oublié de virer le replace, on va mettre ça sur le coup de la fatigue |
C'est ce que j'avais supposé
a+
Marsh Posté le 15-06-2010 à 14:43:29
Bonjour,
Voilà, j'ai un programme qui lit des données dans un fichier Excel, ma variable RangeVal contient :
Là où ca plante c'est sur cette ligne : (valeurBDD est un type int)
Le programme tourne bien jusqu'à tomber sur des valeurs à virgule où là j'ai ce message d'erreur :
Note :
RangeVal.Text.ToString().Trim().Replace(',', '.') vaut 4.0
J'ai essayé de virer le replace au cas où c'était à cause du parametrage régionnal, j'ai essayé de cast en double et mettre valeurBDD en double mais rien y fait je ne sais plus où chercher avez vous une piste ?
---------------
Pire qu'une pierre dans la chaussure, est un grain de sable dans la capote. Coluche.