Math + arrondi + fraction nord américaine + conversion.. ( javascrip ou php ) je suis ouvert

niighthawk
Invité n'ayant pas de compte PHPfrance

01 févr. 2019, 13:50

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/12/

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
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7922 Messages

01 févr. 2019, 14:43

Bonjour,

Quel est le problème en fait ?

Pour le 1) ça se fait avec un simple if else
Pour le 2) ça se fait avec la fonction JS toFixed()
Pour le 3) tu as plusieurs librairie JS qui font cela très bien comme MathJS ou sinon le 1er résultat de Google semble satisfaisant
Pour le 4) il suffit de faire une division, non ? Mais sinon, c'est aussi une fonctionnalité native de la librairie MathsJS.

A toi de jouer maintenant !
Quand tout le reste a échoué, lisez le mode d'emploi...

niighthawk
Invité n'ayant pas de compte PHPfrance

01 févr. 2019, 19:31

Comme je disais je suis nouvelle dans l'univers du codage et je cherche de l'aide pour monté le code car je m'y connais pas vraiment, le code mis ci-haut a été trouver ici et la sur le web mais j'ai beaucoup de misère à l'adapter à mes besoins ci-haut.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7922 Messages

01 févr. 2019, 19:45

On ne va pas le faire à ta place, mais nous pouvons te mettre sur la piste pour que tu réussisse à le faire toi même.

Suis déjà ce que je t'ai dit plus haut. Fait ça étape par étape.

Pour la première partie, c'est très facile.
Si tu ne sais pas faire un simple if else, il faut que tu te formes un minimum en effectuant des tuto sur internet avant de te lancer dans un projet comme le tien.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 602 Messages

14 févr. 2019, 12:07

Salut, @rthur a raison mais j'avais quand même envi de tester. ^^
Je suis parti de ton code et j'ai pas tout fait et il faut plus ou moins tricher avec la fraction sinon on se retrouve avec des fractions style 13.105/16... mais ça te donne déjà une bonne base pour comprendre comment écrire le code.

Code : Tout sélectionner

function output(){ var value1 = document.getElementById('value1').value; if (value1 < 130) document.getElementById('resultinches').innerHTML = 'PAS DISPONIBLE'; else { var number = ((1003-(3.5*parseInt(value1)))*0.03937008); number = Number(number).toFixed(3); var unit, decimal; [unit, decimal] = number.split('.'); var fraction = decimal * 16 / 1000; var numerator, denominator; [numerator, denominator] = reduce(Math.round(fraction), 16); document.getElementById('resultinches').innerHTML = unit + 'inches ' + numerator + '/' + denominator; } } function reduce(numerator, denominator) { var gcd = function gcd(a, b) { return b ? gcd(b, a%b) : a; }; gcd = gcd(numerator, denominator); return [numerator / gcd, denominator / gcd]; }