3 回答

TA貢獻(xiàn)1998條經(jīng)驗 獲得超6個贊
你可以試試這個。主要問題是你的四舍五入,你基本上使用了Math.round(),但你正在處理浮點數(shù)據(jù)類型。因此,只需使用您要顯示的小數(shù)點位數(shù)即可YourNumber.toFixed(n)。n您可以在下面查看。我只是讓你的代碼變得更短和簡短,但你基本上可以改變你的代碼的四舍五入,它應(yīng)該可以工作。
setTimeout((function(){
var i = 2.6;
return function start() {
setInterval(()=> {
if (i < 100000000){
i += 2.6;
document.getElementById('humans').innerText = i.toFixed(1);
}
}, 1000);
};
})(), 0000);
<div id="humans">2.6</div>
<p>Menschen wurden geboren.</p>

TA貢獻(xiàn)1871條經(jīng)驗 獲得超8個贊
您在設(shè)置文本時對值進(jìn)行四舍五入:
num.innerText = Math.round(i);
如果你想顯示小數(shù)點后第n位的值,只需使用toFixed
. 例子:
num.innerText = i.toFixed(1); /* will give you one number after the decimal point */

TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊
這里的代碼可以工作,但是在您發(fā)布的鏈接中,您的腳本中有該代碼:
//funtion for humans born
setTimeout(start, 0000);
var i = 2.6;
var num = document.getElementById('humans');
function start() {
setInterval(increase, 1000);
}
function increase() {
if (i < 100000000) {
i += 2.6;
num.innerText = Math.round(i);
}
}
//funtion for trees cut
setTimeout(start, 0000);
var t = 475.646879756;
var t = document.getElementById('trees');
function startTwo() {
setInterval(increase, 1000);
}
你執(zhí)行了start兩次:一次是在“人類誕生”之后,另一次是在“樹木被砍伐”之后。
increase因此,您有兩個并發(fā)間隔,每秒執(zhí)行兩次,并且每個increase調(diào)用都操作相同的變量。這就是為什么你立刻就得到了8。
我不確定你在這里的目標(biāo)是什么,但是你要么有不同的變量/函數(shù)來每秒增加“人類出生”和“樹木被砍伐”,要么你有一個start調(diào)用(因此increase每秒調(diào)用一個函數(shù))。
無論如何,這是你的錯誤:如果你想澄清你的邏輯;我/我們可以提供進(jìn)一步的幫助。
- 3 回答
- 0 關(guān)注
- 225 瀏覽
添加回答
舉報