Auteur Sujet: Conversion de grandeur : cm en pieds et pouces. - RÉSOLU  (Lu 1004 fois)

LionelMacBruSoft

  • Modérateur
  • Grand magicien
  • *****
  • Messages: 1 054
  • † 11-2013
    • SerNuCom : SERvices NUmérique COMmunication
Bonjour,

J'ai réussi à m'en sortir.

 :soleil:  :PouceHaut:

Une solution sera donc dans les archives du forum.  :Smiley03:

Lionel :alien2:
SerNuCom : SERvices NUmérique COMmunication

Rockabilly

  • Apprenti sorcier
  • **
  • Messages: 19
  • ( @ > @ )
Re : Conversion de grandeur : cm en pieds et pouces. - RÉPONDU
« Réponse #4 le: 25 juin 2013 : 20:12 »
J'ai réussi à m'en sortir.
Tout d'abord, pour la conversion de cm en pieds et pouces, j'ai enlevé tout le code superflu et ça donne ceci:
Citer
var result;

result = Math.ceil((getField("Inches").value) + (getField("Feet").value * 12)) * 2.54  ;
       
event.value = result == 0 ? "" : util.printf("%.0f", result);

et pour le problème de 12 pouces, je n'ai fait que rajouter +0.04 au script et de cette façon on obtient 6' plutôt que 5'12"; ou 5' plutôt que 4'12", etc.

Merlin

  • Administrateur
  • Grand magicien
  • *****
  • Messages: 5 056
  • abracadabrantesque
    • abracadabraPDF.net
Re : Conversion de grandeur - cm en pieds et pouces
« Réponse #3 le: 24 juin 2013 : 21:39 »
cela donne 5 pieds et 12 pouces... ce qui n'est pas la présentation adéquate, car cela devrait donner 6 pieds.

Moi qui croyait qu'il n'y avait qu'un seul pouce par pied !
 :jerisjaune:


Merlin

  • Administrateur
  • Grand magicien
  • *****
  • Messages: 5 056
  • abracadabrantesque
    • abracadabraPDF.net
Re : Conversion de grandeur - cm en pieds et pouces
« Réponse #2 le: 24 juin 2013 : 21:38 »
Salut,

Première chose à faire : vérifier l'Ordre de calcul.
 :Smiley01:

Rockabilly

  • Apprenti sorcier
  • **
  • Messages: 19
  • ( @ > @ )
Conversion de grandeur : cm en pieds et pouces. - RÉSOLU
« Réponse #1 le: 24 juin 2013 : 17:04 »
Bonjour,

J'ai un autre problème de conversion qui ressemble a celui de BSA. Comme dit précédemment, le formulaire a été créé par mon département (http://abracadabrapdf.net/forum/index.php/topic,2110.0.html).

Il y a deux champs (plutôt 3 champs) pour la grandeur. La grandeur peut être soit entrée en cm ou en pieds ET pouces. Par contre je veux qu'il y ait une conversion automatique de cm en pieds et pouces lorque la grandeur est entrée en cm; et si la grandeur a été entrée en pied et pouces, qu'il y ait une conversion de la grandeur en cm.

Tout ceci est basé sur la conversion du poids de kg en lbs et vice versa. Pour cette conversion, j'ai utilisé ce script que j'ai trouvé et qui fonctionne à merveille:
Citer
(function () {

    var f_source = getField("lbs");
    var result;

    if (event.source && event.source === f_source) {
        result = +f_source.value / 2.2;
        event.value = result == 0 ? "" : util.printf("%.0f", result);
    }

})();

et vice-versa

Par la suite, j'ai voulu refaire le même coup pour la grandeur avec un succès modéré. Pour la conversion de cm en pieds et pouces, j'ai utilisé ceci pour le champ des pieds:
Citer
(function () {

    var f_source = getField("cm");
    var result;

    if (event.source && event.source === f_source) {
        result = Math.floor((+f_source.value / 2.54) / 12);
        event.value = result == 0 ? "" : util.printf("%.0f", result);
    }

})();

et cela pour le champ des pouces:
Citer
(function () {

    var f_source = getField("cm");
    var result;

    if (event.source && event.source === f_source) {
        result = (((+f_source.value / 2.54) / 12) - (this.getField("Feet").value)) * 12;
        event.value = result == 0 ? "" : util.printf("%.0f", result);
    }

})();

Il y a cependant un hic pour la conversion de 182cm. Avec le script ci-haut, cela donne 5 pieds et 12 pouces... ce qui n'est pas la présentation adéquate, car cela devrait donner 6 pieds.
Comment puis-je corrige cette anomalie?

J'ai également un léger problème avec la conversion de pieds et pouces en cm. Je ne savais pas comment réunir les 2 valeurs et j'ai essayé plusieurs façon et je suis arrivé avec ce script que j'ai utilisé dans le champ de cm:
Citer
(function () {

    var f_source = getField("Inches");
    var result;


    if (event.source && event.source === getField("Inches") && getField("Feet")) {
        result = Math.ceil((getField("Inches").value) + (getField("Feet").value * 12)) * 2.54  ;
        event.value = result == 0 ? "" : util.printf("%.0f", result);

    }

})();

Le problème survient lorsque j'efface la valeur de pouces en premier et que par la suite j'efface la valeur des pieds, la valeur dans le champ des cm ne s'en va pas. Je comprends que le script est basé sur le champ des pouces plutôt que le champ des pieds. Y a-t-il une façon de faire disparaitre les cm lorsqu'il n'y a plus de valeur dans les pieds et pouces? Je suis conscient que ce n'est vraiment pas la façon la plus élégante et je serais très reconnaissant si une modification au script rendait le formulaire plus fluide.

Cela a l'air très compliqué avec les codes et c'est pourquoi j'ai attaché le formulaire  :jerisjaune:.