js保留两位小数的方法_jquery 保留两位小数
一、我們首先從經典的“四舍五入”算法講起
1、四舍五入的情況
?12 var num =2.446242342; num = num.toFixed(2); // 輸出結果為 2.45
2、不四舍五入
第一種,先把小數邊整數:
?1 Math.floor(15.7784514000 * 100) / 100 // 輸出結果為 15.77
第二種,當作字符串,使用正則匹配:
?1 Number(15.7784514000.toString().match(/^\d+(?:.\d{0,2})?/)) // 輸出結果為 15.77,不能用于整數如 10 必須寫為10.0000
注意:如果是負數,請先轉換為正數再計算,最后轉回負數
再分享一個經典的解決四舍五入問題后js保留兩位小數的方法:
?1234567891011121314151617181920212223242526272829 //四舍五入保留2位小數(若第二位小數為0,則保留一位小數) function keepTwoDecimal(num) { var result = parseFloat(num); if (isNaN(result)) { alert(‘傳遞參數錯誤,請檢查!’); return false; } result = Math.round(num * 100) / 100; return result; } //四舍五入保留2位小數(不夠位數,則用0替補) function keepTwoDecimalFull(num) { var result = parseFloat(num); if (isNaN(result)) { alert(‘傳遞參數錯誤,請檢查!’); return false; } result = Math.round(num * 100) / 100; var s_x = result.toString(); var pos_decimal = s_x.indexOf(’.’); if (pos_decimal < 0) { pos_decimal = s_x.length; s_x += ‘.’; } while (s_x.length <= pos_decimal + 2) { s_x += ‘0’; } return s_x; }
二、Js取float型小數點后兩位數的方法
?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
用Javascript取float型小數點后兩位,例22.127456取成22.13,如何做?
1.丟棄小數部分,保留整數部分
?1 parseInt(5/2)
2.向上取整,有小數就整數部分加1
?1 Math.ceil(5/2)
3,四舍五入.
?1 Math.round(5/2)
4,向下取整
?1 Math.floor(5/2)
另類的方法
- 最笨的辦法
?123456 function get() { var s = 22.127456 + “”; var str = s.substring(0,s.indexOf(“.”) + 3); alert(str); }
2. 正則表達式效果不錯
?123456789
3. 他就比較聰明了
?1234
4.會用新鮮東西的朋友… 但是需要 IE5.5+才支持。
5.js保留2位小數(強制)
對于小數點位數大于2位的,用上面的函數沒問題,但是如果小于2位的,比如:changeTwoDecimal(3.1),將返回3.1,如果你一定需要3.10這樣的格式,那么需要下面的這個函數:
?123456789101112131415161718 function changeTwoDecimal_f(x) { var f_x = parseFloat(x); if (isNaN(f_x)) { alert(‘function:changeTwoDecimal->parameter error’); return false; } var f_x = Math.round(x * 100) / 100; var s_x = f_x.toString(); var pos_decimal = s_x.indexOf(’.’); if (pos_decimal < 0) { pos_decimal = s_x.length; s_x += ‘.’; } while (s_x.length <= pos_decimal + 2) { s_x += ‘0’; } return s_x; }
三、js保留兩位小數,自動補充零
?1234567891011121314 function returnFloat(value){ var value=Math.round(parseFloat(value)*100)/100; var xsd=value.toString().split(“.”); if(xsd.length==1){ value=value.toString()+”.00″; return value; } if(xsd.length>1){ if(xsd[1].length<2){ value=value.toString()+“0”; } return value; } }
四、JS取整數,js取絕對值,js四舍五入(可保留兩位小數)
JS取整數,js取絕對值,js四舍五入(可保留兩位小數)函數如下:
?1234567891011121314151617
總結
JS數據格式化是在進行web前端開發時常碰到的事情,特別是在數據類型為Float的數據就需要特殊處理,如保留兩位小數、小數點后的數據是否需要四舍五入等等。下面就來介紹實現數據格式化保留兩位小數的多種方法。
1、JS自帶的方法toFixed(),toFixed() 方法可把 Number 四舍五入為指定小數位數的數字。
語法:NumberObject.toFixed(num),mun是必需的參數,即規定小數的位數,是 0 ~ 20 之間的值,包括 0 和 20,有些實現可以支持更大的數值范圍。如果省略了該參數,將用 0 代替,所以toFixed() 方法可以實現保留2位、3位、4位等等,取決于num的數值。
返回值:返回 NumberObject 的字符串表示,不采用指數計數法,小數點后有固定的 num 位數字。如果必要,該數字會被舍入,也可以用 0 補足,以便它達到指定的長度。如果 num 大于 le+21,則該方法只調用 NumberObject.toString(),返回采用指數計數法表示的字符串。
當 num 太小或太大時拋出異常 RangeError。0 ~ 20 之間的值不會引發該異常。有些實現支持更大范圍或更小范圍內的值。
當調用該方法的對象不是 Number 時拋出 TypeError 異常。
?12345 輸出:13.38
2、自定義函數實現小數保留并四舍五入。
?12345678910 function roundFun(numberRound,roundDigit) { //四舍五入,保留位數為roundDigit if (numberRound>=0){ var tempNumber = parseInt((numberRound * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit); return tempNumber; } else{ numberRound1=-numberRound; var tempNumber = parseInt((numberRound1 * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit); return -tempNumber; } }
然后調用roundFun()這個函數就可以了。如roundFun(‘13.376954′,2);當然返回的結果跟第一種方法是一樣的。
3、通過函數截取,截取到小數點后面第幾位,當然這種方法就沒有四舍五入了。
?12345
總結
以上是生活随笔為你收集整理的js保留两位小数的方法_jquery 保留两位小数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保险公司最怕什么投诉
- 下一篇: 去银行激活信用卡需要什么流程 在银行激活