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

JavaScript Discussion :

Calcul et comparaison entre champs de saisie et champs en provenance BdD


Sujet :

JavaScript

  1. #1
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut Calcul et comparaison entre champs de saisie et champs en provenance BdD
    Bonjour,
    Je rencontre de légers soucis concernant des comparaison et calculs avec des champs en input de type "number"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="number" step="0.1" id="qte[... />
    Alors avant de faire une usine à gaz, je pose 2-3 questions ...
    1) Prenons mon champs qte ci-dessus en input : je saisis 1 dans ce champs et je le compare à un float stocké en BdD Mysql qui contient la valeur 1 aussi
    Est-ce que "1(input)" est < "1(float BdD)" ? ... la réponse est OUI
    Alors que si je passe par Est-ce que parseFloat("1(input)") est < "1(float BdD)" ? ... la réponse est NON comme attendu ...
    Ma question : C'est normal ça ?

    2) Je calcule dans un champs output la somme (sommeTTC) de ces quantités saisies ("qte(input") * ("prix(float BdD)") et j'obtiens un nombre avec un tas de décimal (ex : 6 * 3.6 = 21,60000000...)
    donc là je passe par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseFloat(sommeTTC).toFixed(2);
    et tout baigne mais le séparateur décimal est la , alors que dans mes champs en input le séparateur décimal c'est le . (si je saisie un , en contrôlant le champ avec la fonction la , ne passe pas d'ailleurs)
    Donc moi , ou . je m'en fous mais pas les 2 quand même ... comment puis-je faire au plus simple pour gérer cela ?

    Merci d'avance ...
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  2. #2
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Bonjour vttman,

    Il faut que les types sont les mêmes.

    Ton champ HTML « number » renvoi une chaîne de caractère et le champ de ta BDD dépends de ce que tu utilises, en PostgreSQL tu auras bien un flottant or quand MySql il renverra une chaine de caractère, il me semble.

    Enfin quand tu utilises « parseFloat » pense à préciser le second paramètre, celui de la base, il me semble que par défaut c'est de l'octal et non du décimal.

    Pour ton sépparateur décimal il faut le changer en « . » car même si en français on séppare avec une « , » il en reste pas moins que les langages dont javascript fonctionne avec un « . ».

  3. #3
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Ton champ HTML « number » renvoi une chaîne de caractère ...

    Enfin quand tu utilises « parseFloat » pense à préciser le second paramètre, celui de la base, il me semble que par défaut c'est de l'octal et non du décimal.
    Merci Sébastien
    Je vais vérifier et tenir compte de ces 2 remarques

    Pour ton sépparateur décimal il faut le changer en « . »
    Ok, Mais où ? paramétrage système(windows) ou Js ?
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  4. #4
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Tu vérifies au niveau du JS avec un « indexOf » puis tu remplaces avec « replace » si nécessaire.

    Ici le traitement se fera à partir d'une chaine de caractère que tu peux convertir après avec la fonction « parseFloat » une fois corrigé.

  5. #5
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Parfait !

    Merci
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Bonjour,
    Citation Envoyé par Kennel sébastien
    Enfin quand tu utilises « parseFloat » pense à préciser le second paramètre,
    cela s'applique à la méthode parseInt(string, base); mais pas à parseFloat(string) qui est en base 10.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparaison entre une variable et un champ de table
    Par lebarjot dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/02/2010, 11h38
  2. Comparaison entre une chaine et un champs
    Par exqo77 dans le forum JDBC
    Réponses: 14
    Dernier message: 10/02/2010, 15h56
  3. Réponses: 5
    Dernier message: 19/06/2008, 21h43
  4. Requete de comparaison entre 2 champs
    Par wallaz dans le forum Access
    Réponses: 2
    Dernier message: 23/09/2005, 19h17
  5. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09

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