任何人都知道這樣的功能在JavaScript?如何在js中將數字30.006649999999994轉換爲30.01?
回答
只需選擇您所需的精度和round
功能一起使用乘法/除法。
在你的情況,如果要舍入到第二個十進制數字,你可以做
Math.round(value*100)/100
這可能會導致「* 100」導致精度丟失的大值失敗。例如。 'Math.round(100000000000000.33 * 100)/ 100'返回'100000000000000.31',儘管'.33'可以表示爲一個浮點數。 – bobince 2010-10-15 15:14:54
num = 30.006649999999994;
result = num.toFixed(2); // result will equal 30.01
-1爲什麼選票上漲? toFixed()返回一個字符串。 – 2010-10-15 14:20:33
不幸的是,'toFixed()'在IE中瘋狂破碎。例如。 '(1.9).toFixed(0)'是'2',但是'(0.9).toFixed(0)'是'0' – bobince 2010-10-15 15:00:43
@Ivo:感謝downvote!答案僅僅是爲了向提問者說明如何執行正在尋找的**四捨五入。我沒有聲稱它會返回一個數字值。也許你想降低其他'.toFixed'解決方案。這會讓你對StackOverflow的挑剔問題感覺更好。祝你今天愉快! – 2010-10-15 15:01:00
num = 30.006649999999994;
num2 = num.toFixed(2);
我總是用我自己的回合函數,該函數。
function round(value, precision){
if(precision){
var exponent = Math.pow(10, precision);
return Math.round(value * exponent)/exponent;
}else{
return Math.round(value);
}
}
你可以這樣調用:
round(30.006649999999994, 2);
額定上升p.campbell答案,它看起來並不像我可以在別人的答案尚未置評。
但是,所有你需要做的一個數字是添加parseFloat();
num = 30.006649999999994; result = parseFloat(num.toFixed(2)); //結果等於30.01
它更短嗎?不。它是否仍然會調用不必要的類型轉換?是。 – 2010-10-15 15:04:34
- 1. js,將字符串轉換爲函數
- 2. JS將字符串轉換爲數組
- 3. 如何將字數轉換爲數字
- 4. 如何將字符串轉換爲RHINO Js中的字節
- 5. 如何將數字轉換爲字節?
- 6. 如何將數字轉換爲字符?
- 7. 如何將js中的數組轉換爲C#中的數組?
- 8. 如何在Angular JS中將Array的數組轉換爲JSON?
- 9. BigInteger如何在Java中將字節數組轉換爲數字?
- 10. 在RDLC中將字數轉換爲字
- 11. 如何在Oracle中將字節字符串轉換爲數字?
- 12. 將字符串轉換爲JS中的數字
- 13. 如何將字符串(帶前綴的數字)轉換爲JS中的Double/Float
- 14. js如何將0和1的字符串轉換爲字節
- 15. 如何將字典轉換爲數組
- 16. 如何將數字轉換爲日期
- 17. 如何將數字轉換爲0.mynumber
- 18. Qt - 如何將數字轉換爲QChar
- 19. 如何將「[object Object]」轉換爲數字
- 20. Tensorflow:如何將NaN轉換爲數字?
- 21. 如何將整數轉換爲字符
- 22. 如何將數字轉換爲單詞?
- 23. 如何將字節轉換爲小數?
- 24. 如何將數字轉換爲文本?
- 25. 如何將QR碼轉換爲數字?
- 26. 如何將貨幣轉換爲數字?
- 27. 如何將System.Windows.Input.Key轉換爲數字?
- 28. JS - 對象文字轉換爲數字?
- 29. 將數據轉換爲數字轉換
- 30. 如何在Freemarker中將數字轉換爲字符串
if(x == 30.006649999999994)x = 30.01;它將按照要求正常工作。 – 2010-10-15 14:15:18
你在談論舍入規則:中間點是向上還是向下?對於所有情況來說,重要的是四捨五入的工作。 – 2010-10-15 14:16:21