亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js保留兩位小數方法總結

2019-11-19 14:26:52
字體:
來源:轉載
供稿:網友

本文是小編針對js保留兩位小數這個大家經常遇到的經典問題整理了在各種情況下的函數寫法以及遇到問題的分析,以下是全部內容:

計算機電子書

一、我們首先從經典的“四舍五入”算法講起

1、四舍五入的情況

var num =2.446242342;num = num.toFixed(2); // 輸出結果為 2.45

2、不四舍五入

第一種,先把小數邊整數:

Math.floor(15.7784514000 * 100) / 100 // 輸出結果為 15.77

第二種,當作字符串,使用正則匹配:

Number(15.7784514000.toString().match(/^/d+(?:/./d{0,2})?/)) // 輸出結果為 15.77,不能用于整數如 10 必須寫為10.0000

注意:如果是負數,請先轉換為正數再計算,最后轉回負數

再分享一個經典的解決四舍五入問題后js保留兩位小數的方法:

//四舍五入保留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;}

如果大家想對javascript有系統深入的學習,可以參閱 JavaScript啟示錄 PDF原書完整版 這本經典書籍

二、Js取float型小數點后兩位數的方法

<script type="text/javascript">  //保留兩位小數  //功能:將浮點數四舍五入,取小數點后2位  function toDecimal(x) {  var f = parseFloat(x);  if (isNaN(f)) {  return;  }  f = Math.round(x*100)/100;  return f;  }   //制保留2位小數,如:2,會在2后面補上00.即2.00  function toDecimal2(x) {  var f = parseFloat(x);  if (isNaN(f)) {  return false;  }  var f = Math.round(x*100)/100;  var s = f.toString();  var rs = s.indexOf('.');  if (rs < 0) {  rs = s.length;  s += '.';  }  while (s.length <= rs + 2) {  s += '0';  }  return s;  }   function fomatFloat(src,pos){  return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);  }  //四舍五入  alert("保留2位小數:" + toDecimal(3.14159267));  alert("強制保留2位小數:" + toDecimal2(3.14159267));  alert("保留2位小數:" + toDecimal(3.14559267));  alert("強制保留2位小數:" + toDecimal2(3.15159267));  alert("保留2位小數:" + fomatFloat(3.14559267, 2));  alert("保留1位小數:" + fomatFloat(3.15159267, 1));   //五舍六入  alert("保留2位小數:" + 1000.003.toFixed(2));  alert("保留1位小數:" + 1000.08.toFixed(1));  alert("保留1位小數:" + 1000.04.toFixed(1));  alert("保留1位小數:" + 1000.05.toFixed(1));  //科學計數  alert(3.1415.toExponential(2));  alert(3.1455.toExponential(2));  alert(3.1445.toExponential(2));  alert(3.1465.toExponential(2));  alert(3.1665.toExponential(1));  //精確到n位,不含n位  alert("精確到小數點第2位" + 3.1415.toPrecision(2));  alert("精確到小數點第3位" + 3.1465.toPrecision(3));  alert("精確到小數點第2位" + 3.1415.toPrecision(2));  alert("精確到小數點第2位" + 3.1455.toPrecision(2));  alert("精確到小數點第5位" + 3.141592679287.toPrecision(5));  </script>

用Javascript取float型小數點后兩位,例22.127456取成22.13,如何做?

1.丟棄小數部分,保留整數部分

parseInt(5/2)

2.向上取整,有小數就整數部分加1

Math.ceil(5/2)

3,四舍五入.

Math.round(5/2)

4,向下取整

Math.floor(5/2)

另類的方法

1. 最笨的辦法

function get(){ var s = 22.127456 + ""; var str = s.substring(0,s.indexOf(".") + 3); alert(str);}

2. 正則表達式效果不錯

<script type="text/javascript">onload = function(){ var a = "23.456322"; var aNew; var re = /([0-9]+.[0-9]{2})[0-9]*/; aNew = a.replace(re,"$1"); alert(aNew);}</script>

3. 他就比較聰明了

<script>var num=22.127456;alert( Math.round(num*100)/100);</script>

4.會用新鮮東西的朋友....... 但是需要 IE5.5+才支持。

5.js保留2位小數(強制)

對于小數點位數大于2位的,用上面的函數沒問題,但是如果小于2位的,比如:changeTwoDecimal(3.1),將返回3.1,如果你一定需要3.10這樣的格式,那么需要下面的這個函數:

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保留兩位小數,自動補充零

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四舍五入(可保留兩位小數)函數如下:

<SCRIPT language=javascript><!-- function jsMath(){ document.write(Math.floor(5.80) + "<br>");//取整或下舍入 document.write(Math.round(5.80) + "<br>");//四舍五入,取整數 document.write(Math.round((5.80*100)/100) + "<br>");//四舍五入,保留兩位小數 document.write(Math.ceil(5.10) + "<br>");//上舍入 document.write(Math.abs(-5.80) + "<br>");//取絕對值 document.write(Math.max(55,58) + "<br>");//返回兩個值中最大數 document.write(Math.min(55,58) + "<br>");//返回兩個值中最小數}--></SCRIPT><div><script>jsMath();</script></div>

總結

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 異常。

<script type=”text/javascript”>var num = new Number(13.376954);document.write (num.toFixed(2))</script>輸出:13.38

2、自定義函數實現小數保留并四舍五入。

function roundFun(numberRound,roundDigit) { //四舍五入,保留位數為roundDigitif (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、通過函數截取,截取到小數點后面第幾位,當然這種方法就沒有四舍五入了。

<script type=”text/javascript”>tmp = 13.376954″result = tmp.substr(0,tmp.indexOf(“.”)+2);alert(result);</script>

以上就是小編為大家整理的關于js保留兩位小數方法的總結內容,感謝你的支持,如果你對js保留兩位小數方法還有任何不明白的地方,可以在下方的留言區討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品一区二区| 一区二区三区四区视频| 日韩视频―中文字幕| 国产欧美日韩免费看aⅴ视频| 欧美精品www在线观看| 欧美贵妇videos办公室| 欧美日韩国产va另类| 国产亚洲欧美aaaa| 精品亚洲va在线va天堂资源站| 国产精品久久久久久久久久久久| 国产一区av在线| 精品亚洲夜色av98在线观看| 国产精品日韩欧美| 亚洲欧美色婷婷| 国产成人精品综合| 欧美专区福利在线| 日韩国产高清污视频在线观看| 国产精品入口夜色视频大尺度| 亚洲欧美三级在线| 亚洲精品日产aⅴ| 久久国产精品久久久久| 国产成人精品久久二区二区| 国产亚洲精品一区二区| 亚洲国产欧美精品| 欧美日韩另类视频| 日韩电影在线观看永久视频免费网站| 欧美日本亚洲视频| 日韩av在线播放资源| 亚洲电影免费观看高清完整版在线观看| 欧美在线视频免费播放| 欧美日韩999| 亚洲人a成www在线影院| 亚洲欧美一区二区三区情侣bbw| 色综合久久久888| 国产一区二区三区在线观看视频| 91成人精品网站| 亚洲人在线视频| 成人福利网站在线观看11| 97久久精品人搡人人玩| 久热精品在线视频| 亚洲成人三级在线| 亚洲一区二区三区视频| 中文日韩电影网站| 91精品国产乱码久久久久久久久| 亚洲自拍偷拍色图| 中文字幕日韩精品在线观看| 蜜臀久久99精品久久久久久宅男| 成人乱人伦精品视频在线观看| 国产精品人成电影| 国产精品青青在线观看爽香蕉| 亚洲精品丝袜日韩| 中文字幕av日韩| 久久亚洲国产成人| 国产成人精品在线观看| 欧美综合在线观看| 国产+成+人+亚洲欧洲| 国产精品视频免费在线| 欧美日韩美女在线| 日韩电影在线观看永久视频免费网站| 久久综合电影一区| 美女av一区二区三区| 91九色国产视频| 亚洲精品久久久久久久久久久久| 国产精品成人免费视频| 日韩精品视频在线观看网址| 亚洲精品天天看| 国产日韩在线免费| 姬川优奈aav一区二区| 国产精品嫩草影院一区二区| 欧美中文字幕在线观看| 欧美小视频在线观看| 国产精品久久久久久久久粉嫩av| 91美女福利视频高清| 91精品国产自产在线观看永久| 色爱av美腿丝袜综合粉嫩av| 久久69精品久久久久久久电影好| 久久综合亚洲社区| 欧美小视频在线观看| 国产中文日韩欧美| 97超级碰碰人国产在线观看| 欧美美女操人视频| 影音先锋欧美在线资源| 国产一区二区三区丝袜| 久久久亚洲精选| 国产精品久久久久久av福利| 欧美在线观看www| 国产亚洲精品高潮| 日韩中文理论片| 欧美激情女人20p| 国产日本欧美视频| 日本欧美一二三区| 一区二区三区亚洲| 亚洲精品91美女久久久久久久| 97久久精品人人澡人人爽缅北| 久久久久久久久久婷婷| 亚洲成人网在线观看| 久久久女女女女999久久| 亚洲国产成人91精品| 国产精品第1页| 国产一区二区三区毛片| 欧美日韩第一视频| 中文字幕精品www乱入免费视频| 欧美一级淫片丝袜脚交| 中文字幕日韩在线观看| 国产欧美精品一区二区三区介绍| 中文日韩在线视频| 91精品国产777在线观看| 欧美视频第一页| 成人av在线天堂| 亚洲人成电影网站色| 亚洲精品国精品久久99热| 日韩美女免费观看| 国产精品高潮呻吟久久av无限| 久久久久久久久91| 亚洲成人三级在线| 日本精品一区二区三区在线播放视频| 国产精品成人观看视频国产奇米| 国产精品亚发布| 欧美精品日韩三级| 国产a级全部精品| 亚洲精品免费一区二区三区| 中文字幕亚洲综合久久筱田步美| 国内揄拍国内精品少妇国语| 国产精品白丝jk喷水视频一区| 亚洲女性裸体视频| 亚洲综合自拍一区| xxxxx成人.com| 亚洲黄一区二区| 久久成人国产精品| 欧洲成人在线视频| 懂色av中文一区二区三区天美| 国产一区欧美二区三区| 欧美一级大片在线观看| 精品性高朝久久久久久久| 成人国产精品久久久久久亚洲| 亚洲欧美一区二区三区四区| 欧美在线日韩在线| 亚洲精品中文字幕女同| www.亚洲免费视频| 国产亚洲人成网站在线观看| 日韩成人激情影院| 国产精品久在线观看| 国语自产偷拍精品视频偷| 国产成人一区二区三区| 乱亲女秽乱长久久久| 91中文精品字幕在线视频| 久久成人精品视频| 久久久伊人日本| 亚洲一区二区三区在线免费观看| 欧美性xxxx| 日韩av在线最新| 欧美综合在线第二页| 日韩中文字幕精品视频| 国产精品永久免费视频| 日韩欧美在线视频| 久热爱精品视频线路一| 亚洲丝袜av一区| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲国产另类 国产精品国产免费| 亚洲色图综合网| 久久精品视频免费播放| 国产在线精品播放| 色偷偷偷综合中文字幕;dd| 亚洲成色777777女色窝|