我試圖在使用Angular和TypeScript的HTML文件中進行此操作:{{(i/5) % 3}}
。如何截斷打字稿中的數字
問題是,當i/5
沒有返回自然數時,它不能繼續操作% 3
部分。所以問題是:如何截斷i/5
以獲得可接受的操作結果?
順便說一句,我試圖用JavaScript函數Math.trunc(i/5)
但我得到一個錯誤,指出:
「無法讀取的未定義的屬性TRUNC」
我試圖在使用Angular和TypeScript的HTML文件中進行此操作:{{(i/5) % 3}}
。如何截斷打字稿中的數字
問題是,當i/5
沒有返回自然數時,它不能繼續操作% 3
部分。所以問題是:如何截斷i/5
以獲得可接受的操作結果?
順便說一句,我試圖用JavaScript函數Math.trunc(i/5)
但我得到一個錯誤,指出:
「無法讀取的未定義的屬性TRUNC」
我不明白的問題。但是,您可以嘗試 Math.floor(i/5) % 3
。當您除以負數時,這會導致錯誤的結果。
您不能在模板內使用'Math'。 – 2017-05-28 13:30:02
您可以使用三種不同的數學API。
Math.floor總是給你最低的數字:
Math.floor(1/5) // 0
Math.floor(4/5) // 0
Math.ceil總是給你最高的號碼:
Math.ceil(1/5) // 1
Math.ceil(4/5) // 1
Math.round爲您提供了一個與最鄰近:
Math.round(1/5) // 0
Math.round(4/5) // 1
但是你不能在模板中使用'Math'。 – 2017-05-28 13:28:07
這個問題與TypeScript無關。 TypeScript不提供新的操作符或函數或截斷數字的方法。 TypeScript只是JavaScript上的一個類型層。
這是一個角度問題。您不能在模板中使用Math
(任何其他全局變量)。您的選項是:
(~~(i/5)) % 3
(i/5 - (i/5) % 1) % 3
這些選項都不適用於我。第一個我得到了一個意想不到的令牌,第二個給我帶來了第一個錯誤。我會和第三個一起去,但主要的問題是如何在模板上做到這一點。感謝您的時間,並且您對'數學'這個問題是正確的。 – RaulGM
這個問題有沒有關係打字稿。它與Angular模板有關。你應該修改標題。無論如何,你不能在模板中使用'Math'(或任何其他全局)。在這種情況下,你可以使用'(~~(i/5))%3'。或者在你的TypeScript文件中計算它。 – 2017-05-28 13:29:28
或使用'(i - i%1)%3'。 – 2017-05-28 13:35:07
最好在組件中執行邏輯,並將結果顯示在模板中。即定義一個方法或一個變量來完成數學運算並顯示結果。這樣你也可以訪問Math。*方法。 – mok