Bonjour,
dans mon sujet précédent j'avais pu solutionner ma question.
Allant davantage vers la finalisation de mon projet, je m'intéresse aujourd'hui à un séparateur de millier dans un nombre, afin que ce nombre soit mieux lisible :
483 957
l'est davantage que
483957
Exemple par l'image :
J'ai la fonction .js millier(nbr) que j'intègre et qui s'exécute à chaque clic sur les différents like d'incrémentation.
Cela fonctionne vraiment bien (et je trouve ça plutôt sympa !), mais voici ma question : hormis une erreur que j'aurais commise (laquelle ?), pourquoi, à partir du million 1 000 000 le truc dérape complètement ?
Modifié par Gout-de-l-esprit (29 Oct 2021 - 17:10)
dans mon sujet précédent j'avais pu solutionner ma question.
Allant davantage vers la finalisation de mon projet, je m'intéresse aujourd'hui à un séparateur de millier dans un nombre, afin que ce nombre soit mieux lisible :
483 957
l'est davantage que
483957
Exemple par l'image :
J'ai la fonction .js millier(nbr) que j'intègre et qui s'exécute à chaque clic sur les différents like d'incrémentation.
<script>
window.addEventListener('DOMContentLoaded', () =>{
document.querySelectorAll('#counterview a').forEach(($a, i) =>{
$a.addEventListener('click', e=>{
e.preventDefault();
let xhr = new XMLHttpRequest();
xhr.open("GET", $a.href, true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.addEventListener('readystatechange', ev =>{
if(xhr.readyState == 4 && xhr.status == 200) {
if(/^\d+$/.test(xhr.responseText)){
document.getElementById('result').textContent = xhr.responseText;
let $audio = document.getElementById('audio');
$audio.pause();
$audio.src = `sons/b${i + 1}.mp3`;
$audio.play();
//À chaque clic, on récupère la nouvelle valeur de l'id="result"
var valeur = res.innerHTML;
//On exécute la fonction millier(nbr) pour un séparateur constant des milliers de l'id="result"
millier(valeur);
}
}
});
xhr.send();
});
});
});
function millier(nbr)
{
var nombre = ''+nbr;
var retour = '';
var count=0;
for(var i=nombre.length-1 ; i>=0 ; i--)
{
if(count!=0 && count % 3 == 0)
retour = nombre[i]+' '+retour ;
else
retour = nombre[i]+retour ;
count++;
}
res.innerHTML = retour;
return retour;
}
//À l'ouverture la page :
var res = document.getElementById('result');
var valeur = res.innerHTML;
//À l'ouverture la page :
millier(valeur);
</script>
Cela fonctionne vraiment bien (et je trouve ça plutôt sympa !), mais voici ma question : hormis une erreur que j'aurais commise (laquelle ?), pourquoi, à partir du million 1 000 000 le truc dérape complètement ?
Modifié par Gout-de-l-esprit (29 Oct 2021 - 17:10)