回答
有value.toFixed(3)
,但將四捨五入至2.346。
如果你真的不想輪,你可以只需parseInt(value * 1000)/1000
。
您可能需要確保值是一個數第一:
value = new Number(value)
現在,如果value
是用戶輸入,這是可能的,它現在可能是NaN
(非數字)。
你不能做if(value == NaN)
檢查,NaN
永遠不等於任何東西(甚至不是自己),你必須使用isNaN(value)
函數。
感謝它完美的工作,我期望:) – user737767 2011-06-02 07:29:37
OP不問NaN函數。你爲什麼要在這裏發佈? OP明確指出,該輸入是一個數字,即2.3456789 – 2011-06-02 07:30:08
@roadrunner:因爲.toFixed()是Number對象上的函數。這就是爲什麼,防守編碼。 – 2011-06-02 07:38:38
嘗試Math.floor(2.3456789 * 1000)/100
。這可能會導致浮點錯誤,所以它可能是一個更好的主意,只是通過字符串函數
var parts = String(2.3456789).split(".");
var out = parts[0] + "." + parts[1].substring(0, 3);
當然,第二種方法可以在數字嗆指數做到這一點。
使用字符串以避免浮點錯誤肯定有優點。如果需要計算,可以堅持整數(例如,不是以釐米工作,以毫米爲單位)。 – 2011-06-02 07:36:37
使用Math.round()
。
這將舍入小數點後3位。
var result=Math.round(2.3456789*1000)/1000 //returns 2.345
事實上,式舍入任何數x
小數點是:
1)多個原數由10^x (10 to the power of x)
。
2)將Math.round()
應用於結果。
3)將結果除以10^x
。
我不明白你爲什麼要這樣做.toFixed()和Math.round(2.3456789 * 1000)/ 1000返回2.346,而不是2.345。 – 2011-06-02 07:28:14
ya .toFixed()完美地工作:) – user737767 2011-06-02 07:30:29
的Javascript 1.5+介紹Number.toFixed(N)和Number.toPrecision(N) - 挑一個取決於你所需要的東西。
Number.toFixed()可讓您指定小數點後的位數(如有必要,填充)。
(2.3456789).toFixed(3) = "2.346"
(3).toFixed(3) = "3.000"
Number.toPrecision()允許你指定的顯著數字位數。
(2.3456789).toPrecision(4) = "2.346"
使用此功能數字的舍入
// Arguments: number to round, number of decimal places
function roundNumber(rnum, rlength) {
var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
retrurn parseFloat(newnumber); // Output the result to the form field (change for your purposes)
}
- 1. 任何人都可以提出自學Drupal的好網站嗎?
- 2. 任何人都可以提出一個好的PHP調試包?
- 3. 任何人都可以解釋在Python中的lambda函數?
- 4. 一個函數來調整任何動態數組
- 5. Scala函數來改變一個整數
- 6. 任何人都知道任何好的數學方程wysiwyg的實際讓用戶提交數學答案?
- 7. 任何人都可以提出一種方法來跟蹤函數的每個調用?
- 8. 任何人都可以提出一個可以按需停止的移動高效循環函數嗎?
- 9. 任何人都可以提出一種方法來創建一個整型鍵出類嗎?
- 10. 一個數組中的所有數字都可以被2整除的次數
- 11. 任何人都可以用這個(Javascript數組)幫助嗎?
- 12. 任何人都可以幫助我在一行中寫這個函數嗎?
- 13. matlab函數是一個整數函數
- 14. 任何人都可以在CodeSmith SchemaExplorer.ViewSchema構造函數中解釋參數嗎?
- 15. 一個haskell函數來測試一個整數是否出現在另一個整數之後
- 16. 任何人都可以提出一個很好的教程,學習在Angularjs中構建自定義指令嗎?
- 17. 所有的數學運算都以整數形式返回?
- 18. JavaScript函數來驗證一個整數值
- 19. 任何人都可以改進下面的VBA的Fuzzyfind函數?
- 20. 如何將一個整數傳遞給一個javascript函數?
- 21. 任何人都可以提出一個很好的PHP解析類嗎?
- 22. 任何數據庫都可以做數學嗎?
- 23. 任何人都可以提供我在整合FriendFeed API的一些信息
- 24. 在一個函數中,你可以retun一個null來退出函數PHP
- 25. 獲取大小在給定一個整數的任意整數
- 26. 如何將一個大整數除以另一個大整數?
- 27. JavaScript整數數學錯誤結果
- 28. 任何人都可以解釋在ssh2_exec()函數調用$ pty參數
- 29. 在JavaScript中解析一個整數(和* only *整數)
- 30. 寫一個函數來查找整數的位數
此頁面列出了幾種不同的方法: http://www.mediacollege.com/internet/javascript/number/round.html – rsbarro 2011-06-02 07:17:42
'Math.round(2。3456789 * 1000)/ 1000'?順便說一句,舍入2.3456789小數點後3位應該給你2.346,而不是2.345。 – 2011-06-02 07:21:58