IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Enregistrement d'un nombre décimal en vb.net


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut Enregistrement d'un nombre décimal en vb.net
    Bonjour,

    je vaudrais enregistrer dans une table Access un nombre décimal à saisir dans un contrôle TextBox (par exemple 2000,50),quel est le type de données que je dois choisir dans cette table (Numérique ou Monétaire) et à quel Format?

    merci.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Idéalement je dirais décimal dans Access et dans Vb.Net, mais il faut faire attention au choix de la précision du décimal dans Access (ce dernier pouvant être modifier contrairement à celui du .Net (Bien que avec un arrond à la decimal x ça doit le faire!))

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    en vb.net j'ai mis le code suivant: val(TextBox1.text) et en Acces j'ai choisi comme type de données "Monétaire" avec l'affectation "Nombre général" pour son format,mais la valeur enregistrée ne prend pas toute la valeur,seulement l'entier est sauvegardé par exemple:
    si j'enregistre la valeur 2000.50 la valeur enregistrée est 2000

    Comment faire?

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut decimal, double champ table ms access
    bonjour barchaoui

    1/ premiere precaution ta valeur saisie doit etre convertie en decimal dans le vb.net
    2/dans ms access tu dois choisir format numerique monetaire avec un nombre de decimales d'arrondis suivant tes besoins.

    je veux dire que tu dois faire dans vb.net ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      ClientDS1.Client.Rows(0).Item(8) = Decimal.Parse(TextBox1.Text)
            ClientTableAdapter1.Update(ClientDS1.Client)
    mettons que tu as des caculs de taxes normalement on ecrirait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Dim maTaxe As Decimal = 20.0
            Dim monTotal As Decimal = 0.0
            monTotal = ClientDS1.Client.Rows(0).Item(8)
            monTotal = monTotal * maTaxe / 100.0
            ClientDS1.Client.Rows(0).Item(8) = monTotal
            ClientTableAdapter1.Update(ClientDS1.Client)
    Le format d'affichage est toujours geree par ms access (nombre de decimales, symbole monetaire puisque c'est un user settings machine).
    La precision par contre est geree par vb.net ,par arrondis pour les calculs monetaires et financier à ma connaissance,ce qui correspond au besoin des utilisateurs.
    Les calculs scientifiques sont par contre plus delicat et sont en general geres par des troncatures ...qui peuvent amener par exemple à des egalites ou des inegalites qui n'existent pas (infini positif ou negatif machine : instruction vb.net IsInfinity ,zero machine NotNan ).
    De toute facon voici ce que je trouve en vb.net a comparer avec ms access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     'VB.NET
     'soit 28 digits en valeurs entieres 
     TextBox3.Text = Decimal.MaxValue '79228162514264337593543950335
     'soit 29 digits (y compris les decimales c'est mon opinion perso)
     TextBox3.Text = Decimal.MinValue  '- 79228162514264337593543950335
     
    'le plus grand/petit decimal je suppose en vb.net est:
    '  +-7,9228162514264337593543950335
    'ET VOICI MS ACCESS 2003 (doc):
    '------------------------------
    '+/-79 228 162 514 264 337 593 543 950 335 pour les nombres sans décimales.
    'La plage de valeurs des nombres à 28 décimales est 
    '+/-7,9228162514264337593543950335. 
    'Le plus petit nombre différent de zéro est 0,0000000000000000000000000001
    Vois-tu ils sont identiques.
    Bon code et bonne soiree....

Discussions similaires

  1. [MySQL] mettre nombre décimal en entier
    Par splouf dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 18/01/2006, 12h20
  2. Réponses: 4
    Dernier message: 21/12/2005, 12h20
  3. [VB.NET] Nombre décimal
    Par Sadneth dans le forum ASP.NET
    Réponses: 8
    Dernier message: 25/11/2005, 12h41
  4. insérer un nombre décimale dans une table
    Par mouloudéen dans le forum Access
    Réponses: 4
    Dernier message: 02/10/2005, 21h29
  5. CRITERIA - Représentation binaire d'un nombre décimal signé.
    Par RamDevTeam dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 10/08/2005, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo