Se connecter avec
S'enregistrer | Connectez-vous

pb en prog pour html

Dernière réponse : dans Programmation

bonjour,
J'aimerai faire une page html afin de calculé une moyenne un ecart-type et une étendue, je me suis basé sur une page deja existante mais qui fonctionne qu'avec des valeurs entières, alors que je voudrai pouvoir utilisé des décimal et des nombres négatifs, je bloque depuis quelques temps. Je pense que le problème est dans la fonction verifentier (voir ci-dessous).
Quelqu'un pourrait-il me depanner s'il vous plaît
merci d'avance
Baptiste PIARD


window.onload=montre();
//-->
</SCRIPT>
<BR><BR>
<DIV onmouseover=javascript:montre();>
<SCRIPT language=Javascript>
var somme, somCarre, NbV, val_min, val_max;

function CalculMoy() {
somme=0;
somCarre=0;
NbV=0;
val_min=0;
val_max=0;

CalculSommes(document.FormCalcul.Valeur1);
CalculSommes(document.FormCalcul.Valeur2);
CalculSommes(document.FormCalcul.Valeur3);
CalculSommes(document.FormCalcul.Valeur4);
CalculSommes(document.FormCalcul.Valeur5);


//document.FormCalcul.NbValeur.value=Math.floor(NbV);
document.FormCalcul.Moyenne.value=Math.floor(somme/NbV);
var sigma=somCarre-(somme*somme/NbV);
sigma=Math.sqrt(sigma/(NbV-1));
document.FormCalcul.Sigma.value=(Math.round(sigma*100))/100;
//document.FormCalcul.Moy3S.value=Math.floor((somme/NbV)-(3*sigma));
//document.FormCalcul.Min.value=val_min;
//document.FormCalcul.Max.value=val_max;
document.FormCalcul.Etendue.value=val_max-val_min;
return false;
}

function CalculSommes(champ) {
if (VerifEntier(champ)) {
var vv=eval(champ.value);

if (somme==0) {
val_min = vv;
}

somme+=vv;
somCarre+=vv*vv;
NbV+=1;

if (vv < val_min) {
val_min = vv;
}
if (vv > val_max) {
val_max = vv;
}
}
}

function VerifEntier(champ){
var nv=champ.value
if ((isNaN(nv))||(Frac(nv)!=0)||(nv==0)||(nv>9999)) {
champ.value="";
return false;
}
return true;
}

function Focused(nom){
document.FormCalcul.select();
}
function Frac(n){

if (n>=0){return n-Math.floor(n);}
return n-Math.ceil(n);

Autres pages sur : prog html

Lassé par la pub ? Créez un compte

Salut,
Math.floor récupère la valeur par troncature : 2,9 -> 2
Math.round arrondit la valeur à l'entier le plus proche.
Enlève ces fonctions de partout, ca devrait marcher. (mais j'ai pas regardé le code en détails, donc fait une copie au cas où ca marche pas)
Lassé par la pub ? Créez un compte
Tom's guide dans le monde