Page 1 sur 1

Arrondire résultat avec Math.round

Posté : 16 déc. 2008, 12:18
par tibious
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.

Posté : 16 déc. 2008, 14:49
par Berzemus
On peut voir le code, un peu ? Je ne vois pas trop ou tu as essayé de mettre Math.round() dans ta question...

Posté : 16 déc. 2008, 15:32
par tibious
<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()

Posté : 16 déc. 2008, 16:23
par Berzemus

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); }

Posté : 17 déc. 2008, 00:25
par tibious
Merci pour la réponse.
J'adore ce site, on donne une solution et on explique : un coup de main pédagogique.
Bravo!