如何以不同的方式显示此Javascript?

如何以不同的方式显示此Javascript?,javascript,Javascript,所以我想做的是让下面的代码以不同的方式显示。例如,当它说0.135731974时,我希望它真的说13.5731974%,但仍然以同样的速度计算。如果你知道我的意思,你能告诉我怎么做吗 以下是代码: <script> var timer; var stop; function startCount() { stop = false; timer = setInterval(count,1); } function stopCount() {

所以我想做的是让下面的代码以不同的方式显示。例如,当它说0.135731974时,我希望它真的说13.5731974%,但仍然以同样的速度计算。如果你知道我的意思,你能告诉我怎么做吗

以下是代码:

 <script>

 var timer;
 var stop;

 function startCount()
 {
      stop = false;
      timer = setInterval(count,1);
 }
 function stopCount()
 {
      stop = true;
 }
 function count()
 {
      if(stop == false)
          {
           var el = document.getElementById('counter');
           var currentNumber = parseFloat(el.innerHTML);
           el.innerHTML = currentNumber+0.00000003831417624521;
      }
 }
 </script>
 </head>
 <body>

 <div id="counter">0</div>

 <input type="button" value="reset" id="reset" onclick="document.getElementById('counter').innerHTML = 0;" />
 <input type="button" value="start" id="start" onclick="startCount();" />
 <input type="button" value="stop" id="stop" onclick="stopCount();" />
 </body>
 </html>

无功定时器;
var停止;
函数startCount()
{
停止=错误;
定时器=设置间隔(计数,1);
}
函数stopCount()
{
停止=真;
}
函数计数()
{
如果(停止==false)
{
var el=document.getElementById('counter');
var currentNumber=parseFloat(el.innerHTML);
el.innerHTML=currentNumber+0.00000003831417624521;
}
}
0

%
直接放在HTML中,然后将增量值提高100倍:

0%
el.innerHTML=currentNumber+0.000003831417624521;

count()
函数更改为:

var currentNumber = 0;
function count() {
    if (!stop) {
        var el = document.getElementById('counter');
        currentNumber += 0.00000003831417624521;
        el.innerHTML = (currentNumber * 100) + "%";
    }
}
currentNumber
保存在一个变量中,而不是每次都从HTML中解析它,更容易、更有效,尤其是在将其格式化为百分比值之后

另外,您的
stopCount()
函数需要是这样的,这样您就不会同时运行多个计时器:

function stopCount() {
    stop = true;
    clearInterval(timer);
}
整个代码块可以简化并清理为:

<html>
<head>

<script>
var timer, currentNumber = 0;

function startCount() {
    if (!timer) {      
        timer = setInterval(count, 100);
    }
}

function stopCount() {
    if (timer) {
        clearInterval(timer);
        timer = null;
    }
}

function count() {
    var el = document.getElementById('counter');
    currentNumber += 0.00000003831417624521;
    el.innerHTML = (currentNumber * 100) + "%";
}

function reset() {
    currentNumber = 0;
    document.getElementById('counter').innerHTML = "0";
}

</script>
</head>
<body>

<div id="counter">0</div>

<input type="button" value="reset" id="reset" onclick="reset()" />
<input type="button" value="start" id="start" onclick="startCount();" />
<input type="button" value="stop" id="stop" onclick="stopCount();" />
</body>
</html>

var定时器,currentNumber=0;
函数startCount(){
如果(!计时器){
定时器=设置间隔(计数,100);
}
}
函数stopCount(){
中频(定时器){
清除间隔(计时器);
定时器=空;
}
}
函数计数(){
var el=document.getElementById('counter');
currentNumber+=0.00000003831417624521;
el.innerHTML=(当前编号*100)+“%”;
}
函数重置(){
currentNumber=0;
document.getElementById('counter').innerHTML=“0”;
}
0

如果你能把它和我的放在一起,那就太棒了!因为当我现在尝试它时,它会说“INFIN%”谢谢!这将不起作用,因为您将HTML格式化为百分比,然后在下一个循环中,您将按百分比值而不是原始值进行解析。现在它显示为NaN%,您介意复制和粘贴您使用的代码吗?谢谢@user1200940-我最初的回答有点仓促,而且明显有缺陷。我把它改成了我认为更有意义的东西。好吧,现在它冻结在0.0000038314176245210005%@user1200940-我已经纠正了这个问题,并清理了其余的代码。你确定你真的想让它每毫秒运行一次吗?现在它不会启动了:/对不起,我对它很在行,你能试着把我可以使用的全部代码都给我吗。它不必每毫秒运行一次,我只希望它的格式是0.00%,因为它仍然在上升。谢谢!但它仍然冻结:/我将不得不用我得到的!