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 :

Exponentiel négatif sur mobile


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Par défaut Exponentiel négatif sur mobile
    Bonjour à tous,
    Je ne sais pas si je suis au bon endroit, merci de me rediriger si nécessaire.
    Je développe une appli hybride en JQM dans celle-ci je doit faire un calcul : ( age-0,13)
    Ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var age = 22 ;   /* Here simplified, in reality the result of date calculation */
    var K4HF = Math.pow(age, -0.13);
    var K4HFB = parseFloat(K4HF);
     
    var test = typeof K4HFB;
    alert(test);
    alert(K4HFB);
    alert (K4HFB.toFixed(2))
    Dans Safari Desktop
    Le premier alert = number
    La seconde = 0.6690907894046102
    La dernière = 0.67

    Exactement ce dont j'ai besoin

    Par contre sur mobile (IOS):
    Fist alert : number
    second : NaN
    third : NaN

    Quelqu'un voit-il comment je pourrait résoudre ça?

    Il semblerait que le problème soit du au fait que l'exponentiel soit négatif car d'autre calculs comme: (105 0,48 et 1960,50) passent sans problème.


    D'avance merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    pas de réponse à ta question pourquoi cela m...e sur IOS mais une simple interrogation, pourquoi faire un parseFloat ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var K4HF = Math.pow(age, -0.13);
    var K4HFB = parseFloat(K4HF);

  3. #3
    Membre éclairé Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Par défaut
    Bonjour NoSmoking,
    Juste pour m'assurer que ce n'était pas là que ça coinçait !

    Parfaitement inutile j'en convient !

  4. #4
    Membre éclairé Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Par défaut
    Ce qui est encore plus curieux c'est que lorsque je met le code dans jsFiddle (voir ici)
    Tout fonctionne comme il faut !!!! sur Safari desktop comme sur safari IOS
    Grrrrr !
    Est que le serveur peut-être mis en cause? (config)

  5. #5
    Membre éclairé Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Par défaut
    Il semblerait que mon problème ne soit pas lié à l'exponentiel mais plutôt au fait que (safari IOS) n'aime pas beaucoup le calcul de mon age et que son résultat ne soit pas considéré comme un nombre.

    je le calcule de la façon suivante:
    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
    16
     
    /*Date du jour (today)*/
        var d = new Date();
        var y = d.getFullYear();
        var m = d.getMonth();
        var j = d.getDate();
    /*Je récupère la date de naissance dans ma db  elle est au format   (01/11/1958) */
    /* et je la décompose */
    /* appel db et compagnie ...  */
    var DateNaiss = row.DateNaiss;
                        var N_date = DateNaiss.split("/"); // Split de la date
                        var JN = N_date[0];            // valeur du jour
                        var MN = N_date[1];            // valeur du mois
                        var AN = N_date[2];           // valeur de l'année 
                        var age = (y - AN);
                        age = MN > m ? parseInt(age - 1) : parseInt(age);
    si j'essaie de l'appliquer et de l'afficher a ce niveau sur SAFARI desktop pas de problème! -> 57
    sur safari de l'Iphone (NaN)

    scrogneugneu ! Deux jours sur ce problème sans trouver d'issue ! HELP !

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Attention à ton type de donnée avant de faire des opérations dessus, var age = (y - AN), y est de type number alors que AN est de type string, le mieux serait quand même de ne faire l’opération que sur des nombres.

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var N_date = DateNaiss.split("/"); // Split de la date
    var JN = parseInt(N_date[0], 10);            // valeur du jour
    var MN = parseInt(N_date[1], 10);            // valeur du mois
    var AN = parseInt(N_date[2], 10);           // valeur de l'année

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

Discussions similaires

  1. Calcul exponentiel sur mobile
    Par Goltar dans le forum Développement iOS
    Réponses: 0
    Dernier message: 06/06/2016, 11h16
  2. Graphisme pour un jeux java sur mobile
    Par marocleverness dans le forum Java ME
    Réponses: 4
    Dernier message: 15/03/2007, 15h53
  3. 3D sur mobile avec j2me
    Par chabfive dans le forum API graphiques
    Réponses: 1
    Dernier message: 10/11/2006, 09h28
  4. [FLASH 8] Application sur mobile
    Par dom_dev dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 07/09/2006, 11h02
  5. creation d'une appli bluetooth stereo sur mobile
    Par diaboli-k dans le forum Java ME
    Réponses: 1
    Dernier message: 01/08/2006, 11h47

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