[Catégorie modifiée VB6 -> .Net] Problème de décimales (même programme sur 2 PC

Résolu
jiel2007 Messages postés 17 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 10 septembre 2011 - 9 juin 2011 à 08:43
jiel2007 Messages postés 17 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 10 septembre 2011 - 10 juin 2011 à 06:39
Bonjour à tous,

Je réalise un petit programme en Visual Basic 2008 express et je me trouve confronté à un petit problème avec les décimales après la virgule.

Pour conserver deux décimales après la virgule, j'utilise la routine suivante :

Prix1 = Val(Tot3) * Val(Prix1) ? par exemple un montant total
Display = Prix1
TextBox55.Text(Display.ToString("F2",CultureInfo.InvariantCulture))
Display = 0

Ce fonctionne parfaitement avec des valeurs provenant de TextBox.Text ou de fichiers.
Exemples : dans mon fichier je lis 72.5 et l'affichage donne 72.50
je lis 69 et l'affichage donne 69.00

Du moins sur mon PC de bureau?

J'ai installé ce programme sur mon portable et il me remplace systématiquement la partie décimale par 2 zéros?
Exemple : dans mon fichier je lis 72.5 et sur le portable l'affichage donne 72.00

Que je remplace le point par une virgule dans le fichier ne change rien. Sur mes 2 machines ( de bureau et portable ) j'ai le même système d'exploitation ( XP Pro SP3. ).

Comment faire pour récupérer mes décimales sur mon portable ?

Merci d'avoir pris le temps de lire ces quelques lignes et, si vous avez une solution ou même une piste à suivre, je suis preneur?

3 réponses

SebSemos Messages postés 57 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 13 juin 2011 1
9 juin 2011 à 10:17
Salut, peut être n'est ce qu'un simple problème de variables, comment sont elles déclarées ?


_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
9 juin 2011 à 11:51
Salut
En net évite val
tu peux te servir de x.ToString("#0.00")
qui te donne deux chiffres après le séparateur
décimal

Dim prix As Double
Dim taux As Double
Dim pr As Double
If Double.TryParse(letaux.Text, taux) And Double.TryParse(leprix.Text, prix) Then
pr = taux * prix
TextBox1.Text = (pr.ToString("#0.00"))
Else
TextBox1.Text = String.Empty
End If
3
jiel2007 Messages postés 17 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 10 septembre 2011
10 juin 2011 à 06:39
Bonjour,

Comme toi, je déclarais bien mes variables en double mais invariant.culture ne semble pas la bonne solution.

Par contre, le format ("#0.00") affiche correctement mes décimales aussi bien sur mon PC de bureau que sur mon portable.

Merci pour l'aide, c'est super.
0
Rejoignez-nous