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 :

JS Math + arrondi + fraction nord américaine + conversion..


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut JS Math + arrondi + fraction nord américaine + conversion..
    Bonjour à tous je suis débutante en Java.

    Voici mon code, j'essaie de faire 4 trucs.. mais je n'y arrive pas
    https://jsfiddle.net/niighthawk/kofwz948/14/

    J'entre une valeur dans la boite " Value1" pour être calcul selon des critères précis. Cette valeur dois avant même d’être calculé correspondre à des conditions ci-bas

    Le résultat dois être affiché en Pouces + fractions et en millimètre.

    PREMIÈREMENT.
    Critères de valeurs
    entre 0 et 130 ---> Écrire comme réponse ( PAS DISPONIBLE )
    130 et 176.999 ---> Prendre la value1 et la calculé avec cette formule (1003-(3.5*parseInt(value1)))*0.03937008

    DEUXIÈMEMENT
    Arrondis multiple
    la réponse suivant le calcule doit être arrondi au multiple 3 chiffres après le point.

    TROISIÈMEMENT
    Fractions
    Avant même que le résultat soit affiché,tout ce qui se trouve derrière le point décimal doit être converti en fraction 1/16.
    ( en accord avec un ruban à mesuré nord-américain* voir images ci-bas.. et comme à l'école la fraction doit être simplifié a sa version la plus base. car on ne dit pas ( 32pouces et 8/16 ) mais ( 32 pouces et 1/2 )

    QUATRIÈMEMENT
    Réponse écrite en pouces + conversion en dessous
    Une fois que la réponse est indiquer à l'utilisateur, j'aimerais qu'en même temps, avoir une 2e réponse converti en millimètre
    affiché en dessous.

    Merci à tous ceux qui peuvent m'aider


    Fractions souhaité au point 3
    Nom : Capture.JPG
Affichages : 544
Taille : 67,2 Ko

  2. #2
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Salut,

    Je ne suis pas sûr de comprendre les autres points alors je vous met le premier cas seulement :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function output() {
        // En rajountant un "+" on covertis en nombre...
        var value1 = +document.getElementById('value1').value;
        var resultinches = document.getElementById('resultinches');
     
        if (value1 >= 0 && value1 <= 130) {
            resultinches.textContent = "PAS DISPONIBLE";
        } else {
            resultinches.textContent = ((1003 - (3.5 * value1)) * 0.03937008) + " inches";
        }
    }

    - Pour le deuxième point regardez quand même la fonction : toFixed() au cas où ce serait ce que vous voulez...

    Citation Envoyé par niighthawk Voir le message
    Avant même que le résultat soit affiché,tout ce qui se trouve derrière le point décimal doit être converti en fraction 1/16.
    Combien de décimal y a-t-il ? 3 ?

    Et si la partie décimale est entre 0 et 1/16 ou entre 1/16 et 2/16 ou 2/16 et 3/16...etc que doit-on afficher ?

  3. #3
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Et si la partie décimale est entre 0 et 1/16 ou entre 1/16 et 2/16 ou 2/16 et 3/16...etc que doit-on afficher ?
    Dans le doute j'ai fait un code qui affiche un arrondi dans le cas où la partie décimale n'est pas égale à n/16 avec n entier positif entre 0 et 16 (0 et 16 sont deux cas particuliers traités dans les conditions if (n == 0) et if (n == 16)...).

    Le lien pour tester : https://jsbin.com/fehasokipi/edit?html,output (il suffit de changer la valeur de la input de type "number" pour afficher les résultat...).

    PS : Peut-être que quelqu'un proposera un code plus optimisé...

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Pour améliorer la précision on fait les calculs en 1/32.

    1/32 = 0.0312

    16.338583200000002 => 0.338583200000002

    0.33858320000000 / 0.0312 = 10.85202564102564 => 11/32 // on arrondi au 1/32 supérieur ? toujours

    Réduction en 1/16 :

    37 au numérateur et 32 au dénominateur, le numérateur est supérieur au dénominateur on divise par 2 ?

    Exemple 37/32 = 18.5/16 // on arrondi au 1/16 supérieur ? non on laisse en 1/32 pour la précision.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Beginner. Voir le message

    Et si la partie décimale est entre 0 et 1/16 ou entre 1/16 et 2/16 ou 2/16 et 3/16...etc que doit-on afficher ?
    c'est pour ca le point 2 arrondir au multiple 3 chiffres après la décimal

    0.049 on arrondis ver le bas donc un chiffre ENTIER
    0.050 on arrondis ver le haut au premier 1/16
    1/16 = 0.062
    0.099 on arrondis ver le bas donc 1/16
    0.1 on arrondis ver le haut au 2/16
    2/16 = 1/8 = 0.125

    etc

    je sais pas si c'est plus claire

  6. #6
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message


    Pour améliorer la précision on fait les calculs en 1/32.
    .
    on pourrais même aller jusqu’à 1/64 ..mais ça finirais pu et j’ai pas besoin d'autant de précision.

    en 1/16 ça me suffit

  7. #7
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Dans le doute j'ai fait un code qui affiche un arrondi dans le cas où la partie décimale n'est pas égale à n/16 avec n entier positif entre 0 et 16 (0 et 16 sont deux cas particuliers traités dans les conditions if (n == 0) et if (n == 16)...).

    Le lien pour tester : https://jsbin.com/fehasokipi/edit?html,output (il suffit de changer la valeur de la input de type "number" pour afficher les résultat...).

    PS : Peut-être que quelqu'un proposera un code plus optimisé...

    Jusqu'à présent tu a très bien répondu à mes points 1 2 3 wow tu est étoile dans le ciel pour moi
    as tu une idée comment je pourrais faire pour afficher en même temps en dessous la conversion du résultat en millimètre ?

    aussi j'ai pas besoin des 2 premiers résultat ( avec le x Rouge ) uniquement le dernier résultat m’intéresse + la conversion en mm.

    y a t-il moyen de garder un bouton ( carré vert ) comme sur mon code original ? car je préfère rentrer moi même la valeur que devoir l'incrémenter manuellement

    Nom : 1.JPG
Affichages : 396
Taille : 18,3 Ko

    je fait quoi si dans la zone IF ELSE si j'ai plus que 2 conditions ( j'en est environ 4-5 avec des formules différentes etc ce que je rajoute plus de ELSE ?
    sinon Bravo ta bien saisie mon problème

  8. #8
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Citation Envoyé par niighthawk Voir le message
    as tu une idée comment je pourrais faire pour afficher en même temps en dessous la conversion du résultat en millimètre ?
    aussi j'ai pas besoin des 2 premiers résultat ( avec le x Rouge ) uniquement le dernier résultat m’intéresse + la conversion en mm.
    Pour la conversion en mm ben en faisant une recherche j'ai vu qu'il fallait multiplier par 25.4 si ce n'est pas ça vous pouvez changer...

    Voici pour tester : https://jsbin.com/xihococifu/edit?html,output

    Citation Envoyé par niighthawk Voir le message
    y a t-il moyen de garder un bouton ( carré vert ) comme sur mon code original ? car je préfère rentrer moi même la valeur que devoir l'incrémenter manuellement
    Ben j'ai ajouté le bouton mais en fait avec la input de type "number" on peut aussi "rentrer la valeur" et alors pour convertir il suffit par exemple de taper sur "entrer"...

    Citation Envoyé par niighthawk Voir le message
    je fait quoi si dans la zone IF ELSE si j'ai plus que 2 conditions ( j'en est environ 4-5 avec des formules différentes etc ce que je rajoute plus de ELSE ?
    Ben pour répondre il faudrait que je sache exactement ce que vous voulez faire avec les étapes comme le premier message...

    Citation Envoyé par niighthawk Voir le message
    c'est pour ca le point 2 arrondir au multiple 3 chiffres après la décimal

    0.049 on arrondis ver le bas donc un chiffre ENTIER
    0.050 on arrondis ver le haut au premier 1/16
    1/16 = 0.062
    0.099 on arrondis ver le bas donc 1/16
    0.1 on arrondis ver le haut au 2/16
    2/16 = 1/8 = 0.125

    etc
    Ben ce n'est pas ce que fait le code que j'ai posté...

    En fait je crois que pour arrondir vous vous basez sur la moitié d'un dixième : 0.05 mais cela s'applique aux nombres décimaux que l'on arrondi au dixième (0.1) prés (un petit article : http://www.educastream.com/valeurs-a...e-decimal-6eme).

    Mais ici ce n'est pas sur la moitié d'un dixième que l'on doit se baser mais sur la moitié de 1/16 (0,0625) c'est-à-dire 1/32 (0,03125).

    C'est comme cela qu'on a le nombre le plus proche :

    - [0 , 0.03125[ ([0 , 1/32[) ---> 0
    - [0.03125 , 0.09375[ ([1/32 , 3/32[) ---> 1/16
    - [0.09375 , 0.15625[ ([3/32 , 5/32[) ---> 2/16 -- 1/8

    etc

  9. #9
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Voici une version plus simple (avec une condition (if (n == 16)) en moins) : https://jsbin.com/qixoyehodu/edit?html,output

  10. #10
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    tu est génial !

    En fait je fais de la radio amatrice et j'essaie d'avoir un petit programme simple qui me dit de combien je dois couper mes antennes.

    car j'ai 4 modèles d'antenne qui selon la fréquences entrées en haut me donne différentes mesures pour mes 4 modèles que j’utilise.

    j'ai fait un visuel rapide sur excel pour te démontrer ce que je cherche à faire
    Nom : Capture.JPG
Affichages : 353
Taille : 88,5 Ko

    1 ( MFT 120 )
    + petit que 129.999 : Pas disponible
    130 et 176.999 : (1003-(3.5*FREQ_COMMUNE))*0.03937008
    177 et 379.999 : Pas disponible
    380 et 512.999 : (291-(0.3463*FREQ_COMMUNE))/25.4
    513 et 759.999 : Pas disponible
    760 et 1000.999 : (133-(0.0888889*FREQ_COMMUNE))/25.4
    Au dessus de 1001 : Pas disponible

    2 ( MHB 5800 )
    + petit que 129.999 : Pas disponible
    130 et 176.999 : (2775-(10.58*FREQ_COMMUNE))*0.03937008
    Au dessus de 177 : Pas disponible

    3 ( superflex )
    + petit 379.999 : Pas disponible
    380 et 512.999 : (291-(0.3463*FREQ_COMMUNE))/25.4
    513 et 759.999 : Pas disponible
    760 et 1000.999 : (133-(0.0888889*FREQ_COMMUNE))/25.4
    Au dessus de 1001 : Pas disponible

    4 ( MHB 5802 )
    + petit que 129.999 : Pas disponible
    130 et 176.999 : (3316.5-(15.12*FREQ_COMMUNE))*0.03937008
    Au dessus de 177 : Pas disponible

    et chaque type dois afficher la valeur en pouces + fraction comme tu a fais et également sa conversion en millimètre,

    J'ai testé ton code et c'est géniale seul bémole quand j'entre 168 j'obtien le bon résultat pour les 2 valeur ( po et mm ) si ensuite j'entre une valeur " non disponible" la valeur en mm reste affichée est-ce possible de faire comme celle en po et afficher pas disponible ?

  11. #11
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    j'ai fait un template et incorporé ton code finalement sans bouton

    https://jsfiddle.net/niighthawk/rs10d98j/2/

    Sauf manque juste à le faire fonctionner avec plus de Else et pour 4 types d'antennes différentes en meme temps.

  12. #12
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Ah bah trop tard pour le template car j'avais déjà commencé... Mais bon vous pouvez modifier le code...

    Et pour le bouton trop tard aussi je l'ai aussi laissé même si je pense toujours qu'il n'est pas vraiment utile... Là aussi c'est modifiable...

    Voici le lien : https://jsbin.com/qowodabuga/edit?html,output

    Essayer de vérifier si ça marche correctement, qu'il n'y a pas d'erreur, une faute m'ayant échappée...


    PS : J'ai optimisé plusieurs choses :

    - Les formules en fait multiplier par 0.03937008 ou diviser par 25.4 c'est pareil, j'ai stocké le facteur 16/25.4 pour que le calcul ne soit fait qu'une fois...
    - J'ai retiré le facteur des formules pour travailler d'abord en mm puis en inches, cela économise une conversion...
    -...

    D'autres membres optimiseront peut-être encore plus...

  13. #13
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    Salut

    @Beginner.



    @niighthawk
    Bonjour à tous je suis débutante en Java.
    JavaScript.



    En fait je fais de la radio amatrice
    Moi aussi F1NHS.(2 programmes en HTML/JAVASCRIPT/CSS)
    Tous les calculs semblent donner un bon résultats, c'est mieux pour l'étage d'émission du matériel et aussi pour une réception difficile (QRM).

  14. #14
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Le monde est petit...

  15. #15
    Membre à l'essai
    Femme Profil pro
    Collégien
    Inscrit en
    Février 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Février 2019
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Gros merci Begginer tu est mon héro

  16. #16
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Tant mieux si ça marche (enfin j’espère qu'il n'y a pas d'erreur, il faudrait faire quelques vérifications quand même, tester quelques valeurs...).

    Si c'est résolu pour vous il faudrait mettre le fil en "résolu"...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/02/2012, 10h41
  2. Demande avis sur CV nord américain
    Par Djobird dans le forum CV
    Réponses: 6
    Dernier message: 22/07/2010, 14h34
  3. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  4. [Maths] Magie des arrondis
    Par djoukit dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/09/2004, 17h00
  5. [Math][Integer] Problème de conversion
    Par deathwing dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/05/2004, 17h01

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