1. #1
    Membre éprouvé Avatar de vttman
    Homme Profil pro
    Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Inscrit en
    décembre 2002
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2002
    Messages : 630
    Points : 1 172
    Points
    1 172

    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 ...
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

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

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 200
    Points : 288
    Points
    288

    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 « . ».
    Vous cherchez à apprendre les bases en langage « C », « Go », « PHP » ou « Python » ? N'hésitez pas à me contacter par MP.

  3. #3
    Membre éprouvé Avatar de vttman
    Homme Profil pro
    Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Inscrit en
    décembre 2002
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2002
    Messages : 630
    Points : 1 172
    Points
    1 172

    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 ?
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

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

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 200
    Points : 288
    Points
    288

    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é.
    Vous cherchez à apprendre les bases en langage « C », « Go », « PHP » ou « Python » ? N'hésitez pas à me contacter par MP.

  5. #5
    Membre éprouvé Avatar de vttman
    Homme Profil pro
    Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Inscrit en
    décembre 2002
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2002
    Messages : 630
    Points : 1 172
    Points
    1 172

    Par défaut

    Parfait !

    Merci
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : janvier 2011
    Messages : 11 620
    Points : 24 703
    Points
    24 703

    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