Donnez vie à vos documents numériques !
 

Seulement montrer les décimales. – RÉSOLU

abracadabraPDF Forums PDF – Général Seulement montrer les décimales. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44568
    Rockabilly
    Participant

    Bonjour,

    J’ai un calcul à faire avec le poids et la grandeur (BSA: body surface area), mais le résultat doit être dans 2 champs séparés  i.e. un champ pour le nombre entier et un autre ne contenant que les 2 prochaines décimales.

    Le calcul est comme suit:

    var h = this.getField(“cm”).value;
    var w = this.getField(“kg”).value;

    event.value = (0.0235 * (Math.pow(h,0.42246) * Math.pow(w,0.5145)));

    Par exemple, si h = 165cm et w = 60kg, le résultat de BSA sera 1.67.

    Je veux envoyer la valeur 1 dans un champ et la valeur 67 dans une autre champ.

    Pour le nomber entier j’ai rajouté Math.floor pour ne pas que la valeur soit arrondie vers le haut.
    Mais mon problème réside dans les 2 décimales. Mon code pour les décimales est comme suit, mais je ne suis pas sûr de comment formuler util.printf pour ne voir que les décimales (à moins qu’il y ait une autre façon).

    var h = this.getField(“cm”).value;
    var w = this.getField(“kg”).value;

    event.value = ((0.0235 * (Math.pow(h,0.42246) * Math.pow(w,0.5145))) – this.getField(“BSA”).value);
    event.value = util.printf(“%.2f”, event.value);

    Merci de votre aide.

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #55227
    alex
    Participant

    Voici les scripts de calcul pour les deux champs:
    BSA1 (partie entière du BSA):

    var h = this.getField(“cm”).value;
    var w = this.getField(“kg”).value;
    calcul=0.0235 * (Math.pow(h,0.42246) * Math.pow(w,0.5145));
    partieEntiere=Math.floor(calcul)
    event.value = partieEntiere;
    BSA2 (partie décimale du BSA):
    var h = this.getField(“cm”).value;
    var w = this.getField(“kg”).value;
    calcul=0.0235 * (Math.pow(h,0.42246) * Math.pow(w,0.5145));
    partieEntiere=Math.floor(calcul)
    event.value = Math.floor(100*(calcul-partieEntiere));
    Voir maquette jointe, il faut aussi vérifier la validité des saisies (taille et poids)…

    [attachment deleted by admin]

    #55228
    Merlin
    Maître des clés

    mais le résultat doit être dans 2 champs séparés  i.e. un champ pour le nombre entier et un autre ne contenant que les 2 prochaines décimales.

    Pourquoi faire simple quand on peut compliquer ?
    :jerisjaune: :geek:

    #55229
    alex
    Participant

    Oui, c’est vrai, mais je suis habitué aux demandes exotiques !  Pour un champ unique donc, nous aurions:
    var h = this.getField(“cm”).value;
    var w = this.getField(“kg”).value;
    calcul=0.0235 * (Math.pow(h,0.42246) * Math.pow(w,0.5145));
    event.value = Math.floor(100*calcul);

    #55230
    Rockabilly
    Participant

    Merci, ça fonctionne à merveille. Je savais que je devais enlever la partie entière, mais je ne savais pas trop comment enlever les décimales. Il fallait seulement y penser de multiplier par 100.

    Pourquoi faire simple quand on peut compliquer ?

    Je sais, si seulement on m’avait demandé de créer ce formulaire avant de le déployer à tous les utilisateurs  :Euuuh:

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.