Ajout 0.1 à un nombre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ajout 0.1 à un nombre

par bins007 » 21 janv. 2007, 16:43

Ah c'est exactement ce qu'il me faut !

Merci beaucoup

par Truc » 21 janv. 2007, 15:56

Tu veux formater (=arrondir) le chiffre ?

trouvé sur le net :
function arrondi(nombre, chiffre)
{
virgule=Math.pow(10,chiffre);
valeur_arrondi=(Math.round(nombre*virgule))/virgule;
return (valeur_arrondi);
}

function faire_time()
{
var n =  document.getElementById("div_time").innerHTML;
n =parseFloat(n)+ 0.1;
n = arrondi(n, 2)
document.getElementById("div_time").innerHTML = n;
}
Je ne connais pas de fonction JS pour le faire sans devoir écrire une fonction maison. :-k

par bins007 » 21 janv. 2007, 14:30

Non ça ne fonctionne pas,

Apres avoir testé plusieurs truc, j'explique dans mon EDIT que c'est pas le probleme avec innerHTML vu que j'ai essayé le code suivant :

Code : Tout sélectionner

<script language="JavaScript"> n = new Number(0); function faire_time() { n = n + 0.1; document.getElementById('div_time').innerHTML = n; } setInterval("faire_time()",100); </script>
Donc là c'est sans récupérer la valeur du innerHTML et ça marche toujours pas !
Le probleme n'est pas de là donc !

par Truc » 21 janv. 2007, 13:55

je ne comprend pas ton EDIT :-k

Essaie comme ça :
function faire_time()
{
var n = document.getElementById("div_time").innerHTML;
n = parseFloat(n)+ 0.1;
document.getElementById("div_time").innerHTML = n;
}
setInterval("faire_time()",100);

par bins007 » 21 janv. 2007, 13:09

Merci je comprend déjà mieux le probleme, j'ai vu du côté de parseFloat() mais apparement faut pas utiliser ça :

j'ai essayé :

Code : Tout sélectionner

function faire_time() { var n = new Number(document.getElementById("div_time").innerHTML); var n = n + 0.1; document.getElementById("div_time").innerHTML = parseFloat(n); }
et

Code : Tout sélectionner

function faire_time() { var n = new Number(document.getElementById("div_time").innerHTML); var n = parseFloat(n + 0.1); document.getElementById("div_time").innerHTML = n; }
Aucun des deux ne fonctionne


EDIT : en fait j'avais rien compris, le probleme ne vient pas du contenu du innerHTML car j'ai même essayé :

Code : Tout sélectionner

<script language="JavaScript"> n = new Number(0); function faire_time() { n = n + 0.1; document.getElementById('div_time').innerHTML = n; } setInterval("faire_time()",100); </script>
Toujours le même probleme

par Truc » 21 janv. 2007, 13:01

Salut,
Le contenu renvoyé par innerHTML est du type String tu dois donc convertir... jette un oeil à parseFloat()

Ajout 0.1 à un nombre

par bins007 » 21 janv. 2007, 12:55

Bonjour,

J'ai un probleme que je ne comprend pas du tout, je souhaite que toute les 0.1 secondes, le nombre d'un div augmente de 0.1

Voilà le code :

Code : Tout sélectionner

function faire_time() { var n = new Number(document.getElementById("div_time").innerHTML); var n = n + 0.1; document.getElementById("div_time").innerHTML = n; } setInterval("faire_time()",100);
Mais ça m'affiche des nombres du genre : 9.199999999999983

Comment ça se fait ?