Arrondire résultat avec Math.round

Eléphanteau du PHP | 18 Messages

16 déc. 2008, 12:18

Bonjour à tous, suite à la réponse d'hier soir nous essayons d'arrondir le résultat avec "Math.round" mais nous n'arrivons pas à l'écrire:
<input type="text" name="surf" id="surf" value="" size="15" maxlength="40" onkeyup="calcul(this.value);" /> <span id="result"></span>
Merci d'avance pour votre aide.

ViPHP
ViPHP | 4039 Messages

16 déc. 2008, 14:49

On peut voir le code, un peu ? Je ne vois pas trop ou tu as essayé de mettre Math.round() dans ta question...
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 18 Messages

16 déc. 2008, 15:32

<script type="text/javascript">
function calcul(surf)
{
document.getElementById('result').innerHTML = surf * 5
}
</script>


<form id="form" action="" method="post">
Surface :<br>
<input type="text" name="surf" id="surf" value="" size="15" maxlength="40" onkeyup="calcul(this.value);" /> <span id="result"></span>
</form>
Voila le code et justement, la question est ou mettre et comment Math.round()

ViPHP
ViPHP | 4039 Messages

16 déc. 2008, 16:23

Code : Tout sélectionner

function calcul(surf) { document.getElementById('result').innerHTML = surf * 5 }
La logique élémentaire dirait, "la ou tu en as besoin". Tu en a besoin ou ? C'est le résultat de "surf * 5" qui doit être arrondi ? surf prend des valeurs flottantes (avec des virgules dedans) ? Es-tu sur que "surf' contient à chaque fois un nombre flottant ?

Modifions un peu ta fonction, d'abord en vérifiant que surf est bien du type float, et en rendant le tout plus lisible pour aider à la compréhension.

Code : Tout sélectionner

function calcul(surf) { data = parseFloat(surf); // Hop, même si surf n'est pas un flottant, il le devient ! resultat_brut = data * 5; // On fait le calcul, et on a le résultat brut. resultat_arrondi = Math.round(resultat_brut); // Et voilà, l'arrondi (le plus proche) est effectué. document.getElementById('result').innerHTML = resultat_arrondi; }
Bien sur, pour faire les malins, on pourrait rendre tout ça sur une ligne:

Code : Tout sélectionner

function calcul(surf) { document.getElementById('result').innerHTML = Math.round(parseFloat(surf) * 5); }
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 18 Messages

17 déc. 2008, 00:25

Merci pour la réponse.
J'adore ce site, on donne une solution et on explique : un coup de main pédagogique.
Bravo!