簡體   English   中英

將計數javascript程序設置為兩位小數

[英]Set counting javascript program to two decimal places

請查看以下代碼:

<script>
setInterval(function () {
    var counters = document.getElementsByClassName("count");

    for(var i = 0 ; i < counters.length ; i++) {
        counters[i].innerHTML = parseInt(counters[i].innerHTML) + parseInt(counters[i].dataset.increment);
    }
}, 1000);
</script>

它要做的是像這樣一段HTML:

<div class="count" data-increment="10">10</div>

它將每秒計數10。 我如何使以下代碼起作用:

<div class="count" data-increment="10.02">10.02</div>

基本上,我希望此程序最多計數兩位小數。

使用parseFloat代替parseInt toFixed(2)用於限制兩個小數點。

setInterval(function() {
    var counters = document.getElementsByClassName("count");

    for (var i = 0; i < counters.length; i++) {
        counters[i].innerHTML = parseFloat(counters[i].innerHTML).toFixed(2) + parseFloat(counters[i].dataset.increment).toFixed(2);
    }
}, 1000);

JSFIDDLE您需要使用parseFloat隱蔽字符串來浮動。 並固定在float上以截斷多余的小數。 toFixed返回字符串,您需要再次使用parseFloat,以便它成為浮點加法,而不是字符串串聯。

 var counters = document.getElementsByClassName("count"); setInterval(function () { for(var i = 0 ; i < counters.length ; i++) { counters[i].innerHTML = (parseFloat(parseFloat(counters[i].innerHTML).toFixed(2)) + parseFloat(parseFloat(counters[i].dataset.increment).toFixed(2))).toFixed(2); } }, 1000); 
 <div class="count" data-increment="10">10</div> <div class="count" data-increment="10.02">10.02</div> 

嘗試包裹內除了String() .innerHTML.datasetNumber() Number()表達式中()鏈接到.toFixed(2) ; counters[i].innerHTML為在String((Number(/* innerHTML */) + Number(/* dataset *)).toFixed(2))派生的結果

 var interval = setInterval(function() { var counters = document.getElementsByClassName("count"); for (var i = 0; i < counters.length; i++) { counters[i].innerHTML = String((Number(counters[i].innerHTML) + Number(counters[i].dataset.increment)).toFixed(2)); } }, 1000); 
 <div class="count" data-increment="10.02">10.02</div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM