最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js保留兩位小數(shù)方法總結(jié)

 更新時(shí)間:2018年01月31日 10:09:58   投稿:laozhang  
本篇文章給大家總結(jié)了js保留兩位小數(shù)的各種方法以及每種方法的實(shí)例代碼分析,如果大家對(duì)此有需要,一起來(lái)學(xué)習(xí)下js保留兩位小數(shù)的方法吧。

本文是小編針對(duì)js保留兩位小數(shù)這個(gè)大家經(jīng)常遇到的經(jīng)典問(wèn)題整理了在各種情況下的函數(shù)寫(xiě)法以及遇到問(wèn)題的分析,以下是全部?jī)?nèi)容:

計(jì)算機(jī)電子書(shū)

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

1、四舍五入的情況

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

2、不四舍五入

第一種,先把小數(shù)邊整數(shù):

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

第二種,當(dāng)作字符串,使用正則匹配:

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

注意:如果是負(fù)數(shù),請(qǐng)先轉(zhuǎn)換為正數(shù)再計(jì)算,最后轉(zhuǎn)回負(fù)數(shù)

再分享一個(gè)經(jīng)典的解決四舍五入問(wèn)題后js保留兩位小數(shù)的方法:

//四舍五入保留2位小數(shù)(若第二位小數(shù)為0,則保留一位小數(shù))
function keepTwoDecimal(num) {
 var result = parseFloat(num);
 if (isNaN(result)) {
 alert('傳遞參數(shù)錯(cuò)誤,請(qǐng)檢查!');
 return false;
 }
 result = Math.round(num * 100) / 100;
 return result;
}
//四舍五入保留2位小數(shù)(不夠位數(shù),則用0替補(bǔ))
function keepTwoDecimalFull(num) {
 var result = parseFloat(num);
 if (isNaN(result)) {
 alert('傳遞參數(shù)錯(cuò)誤,請(qǐng)檢查!');
 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;
}

如果大家想對(duì)javascript有系統(tǒng)深入的學(xué)習(xí),可以參閱 JavaScript啟示錄 PDF原書(shū)完整版 這本經(jīng)典書(shū)籍

二、Js取float型小數(shù)點(diǎn)后兩位數(shù)的方法

<script type="text/javascript"> 
 //保留兩位小數(shù) 
 //功能:將浮點(diǎn)數(shù)四舍五入,取小數(shù)點(diǎn)后2位 
 function toDecimal(x) { 
 var f = parseFloat(x); 
 if (isNaN(f)) { 
 return; 
 } 
 f = Math.round(x*100)/100; 
 return f; 
 } 
 
 //制保留2位小數(shù),如:2,會(huì)在2后面補(bǔ)上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位小數(shù):" + toDecimal(3.14159267)); 
 alert("強(qiáng)制保留2位小數(shù):" + toDecimal2(3.14159267)); 
 alert("保留2位小數(shù):" + toDecimal(3.14559267)); 
 alert("強(qiáng)制保留2位小數(shù):" + toDecimal2(3.15159267)); 
 alert("保留2位小數(shù):" + fomatFloat(3.14559267, 2)); 
 alert("保留1位小數(shù):" + fomatFloat(3.15159267, 1)); 
 
 //五舍六入 
 alert("保留2位小數(shù):" + 1000.003.toFixed(2)); 
 alert("保留1位小數(shù):" + 1000.08.toFixed(1)); 
 alert("保留1位小數(shù):" + 1000.04.toFixed(1)); 
 alert("保留1位小數(shù):" + 1000.05.toFixed(1)); 

 //科學(xué)計(jì)數(shù) 
 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("精確到小數(shù)點(diǎn)第2位" + 3.1415.toPrecision(2)); 
 alert("精確到小數(shù)點(diǎn)第3位" + 3.1465.toPrecision(3)); 
 alert("精確到小數(shù)點(diǎn)第2位" + 3.1415.toPrecision(2)); 
 alert("精確到小數(shù)點(diǎn)第2位" + 3.1455.toPrecision(2)); 
 alert("精確到小數(shù)點(diǎn)第5位" + 3.141592679287.toPrecision(5)); 
 </script>

用Javascript取float型小數(shù)點(diǎn)后兩位,例22.127456取成22.13,如何做?

1.丟棄小數(shù)部分,保留整數(shù)部分

parseInt(5/2)

2.向上取整,有小數(shù)就整數(shù)部分加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. 正則表達(dá)式效果不錯(cuò)

<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.會(huì)用新鮮東西的朋友....... 但是需要 IE5.5+才支持。

5.js保留2位小數(shù)(強(qiáng)制)

對(duì)于小數(shù)點(diǎn)位數(shù)大于2位的,用上面的函數(shù)沒(méi)問(wèn)題,但是如果小于2位的,比如:changeTwoDecimal(3.1),將返回3.1,如果你一定需要3.10這樣的格式,那么需要下面的這個(gè)函數(shù):

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保留兩位小數(shù),自動(dòng)補(bǔ)充零

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取整數(shù),js取絕對(duì)值,js四舍五入(可保留兩位小數(shù))

JS取整數(shù),js取絕對(duì)值,js四舍五入(可保留兩位小數(shù))函數(shù)如下:

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

總結(jié)

JS數(shù)據(jù)格式化是在進(jìn)行web前端開(kāi)發(fā)時(shí)常碰到的事情,特別是在數(shù)據(jù)類型為Float的數(shù)據(jù)就需要特殊處理,如保留兩位小數(shù)、小數(shù)點(diǎn)后的數(shù)據(jù)是否需要四舍五入等等。下面就來(lái)介紹實(shí)現(xiàn)數(shù)據(jù)格式化保留兩位小數(shù)的多種方法。

1、JS自帶的方法toFixed(),toFixed() 方法可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字。

語(yǔ)法:NumberObject.toFixed(num),mun是必需的參數(shù),即規(guī)定小數(shù)的位數(shù),是 0 ~ 20 之間的值,包括 0 和 20,有些實(shí)現(xiàn)可以支持更大的數(shù)值范圍。如果省略了該參數(shù),將用 0 代替,所以toFixed() 方法可以實(shí)現(xiàn)保留2位、3位、4位等等,取決于num的數(shù)值。

返回值:返回 NumberObject 的字符串表示,不采用指數(shù)計(jì)數(shù)法,小數(shù)點(diǎn)后有固定的 num 位數(shù)字。如果必要,該數(shù)字會(huì)被舍入,也可以用 0 補(bǔ)足,以便它達(dá)到指定的長(zhǎng)度。如果 num 大于 le+21,則該方法只調(diào)用 NumberObject.toString(),返回采用指數(shù)計(jì)數(shù)法表示的字符串。

當(dāng) num 太小或太大時(shí)拋出異常 RangeError。0 ~ 20 之間的值不會(huì)引發(fā)該異常。有些實(shí)現(xiàn)支持更大范圍或更小范圍內(nèi)的值。

當(dāng)調(diào)用該方法的對(duì)象不是 Number 時(shí)拋出 TypeError 異常。

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

2、自定義函數(shù)實(shí)現(xiàn)小數(shù)保留并四舍五入。

function roundFun(numberRound,roundDigit) { //四舍五入,保留位數(shù)為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;
}
}

然后調(diào)用roundFun()這個(gè)函數(shù)就可以了。如roundFun('13.376954′,2);當(dāng)然返回的結(jié)果跟第一種方法是一樣的。

3、通過(guò)函數(shù)截取,截取到小數(shù)點(diǎn)后面第幾位,當(dāng)然這種方法就沒(méi)有四舍五入了。

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

以上就是小編為大家整理的關(guān)于js保留兩位小數(shù)方法的總結(jié)內(nèi)容,感謝你的支持,如果你對(duì)js保留兩位小數(shù)方法還有任何不明白的地方,可以在下方的留言區(qū)討論。

相關(guān)文章

  • JavaScript實(shí)現(xiàn)淺拷貝與深拷貝的方法分析

    JavaScript實(shí)現(xiàn)淺拷貝與深拷貝的方法分析

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)淺拷貝與深拷貝的方法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript淺拷貝與深拷貝的定義與使用方法,需要的朋友可以參考下
    2018-07-07
  • js如何獲取object類型里的鍵值

    js如何獲取object類型里的鍵值

    這篇文章主要介紹了js獲取object類型里鍵值的方法,需要的朋友可以參考下
    2014-02-02
  • 淺談JavaScript中this的指向更改

    淺談JavaScript中this的指向更改

    這篇文章主要介紹了淺談JavaScript中this的指向更改,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • IE與FF下javascript獲取網(wǎng)頁(yè)及窗口大小的區(qū)別詳解

    IE與FF下javascript獲取網(wǎng)頁(yè)及窗口大小的區(qū)別詳解

    本篇文章主要是對(duì)IE與FF下javascript獲取網(wǎng)頁(yè)及窗口大小的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • Bootstrap源碼解讀模態(tài)彈出框(11)

    Bootstrap源碼解讀模態(tài)彈出框(11)

    這篇文章主要源碼解讀了Bootstrap模態(tài)彈出框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 解決JavaScript精度問(wèn)題的常見(jiàn)方法

    解決JavaScript精度問(wèn)題的常見(jiàn)方法

    在 JavaScript 中,處理浮點(diǎn)數(shù)時(shí)經(jīng)常會(huì)遇到精度丟失的問(wèn)題,這是由于 JavaScript 內(nèi)部采用 IEEE 754 標(biāo)準(zhǔn)表示浮點(diǎn)數(shù),導(dǎo)致某些小數(shù)無(wú)法精確表示,本文將介紹一些常見(jiàn)的方法來(lái)解決 JavaScript 中的精度問(wèn)題,并討論它們的優(yōu)缺點(diǎn),需要的朋友可以參考下
    2024-05-05
  • Ajax實(shí)現(xiàn)不刷新取最新商品

    Ajax實(shí)現(xiàn)不刷新取最新商品

    本文主要介紹了Ajax 實(shí)現(xiàn)不刷新取最新商品的方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • js跑馬燈代碼(自寫(xiě))

    js跑馬燈代碼(自寫(xiě))

    自己剛寫(xiě)的一個(gè)小程序,寫(xiě)得滿一般的,不過(guò)這個(gè)接口還成,感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)js知識(shí)有所幫助
    2013-04-04
  • Jquery 常用方法一覽表(集合)

    Jquery 常用方法一覽表(集合)

    之前腳本之家發(fā)過(guò)相關(guān)的文章,這里又是一篇關(guān)于jquery常用方法的收集整理,我們給放到一起,學(xué)習(xí)jquery的朋友可以參考下。
    2010-03-03
  • js如何取消事件冒泡

    js如何取消事件冒泡

    事件冒泡是什么意思這里就不為大家一一贅述了,下面為大家講解的是js中如何取消事件冒泡,感興趣的朋友可以參考下
    2013-09-09

最新評(píng)論

娄烦县| 诏安县| 酉阳| 鹿泉市| 毕节市| 慈利县| 三明市| 宣化县| 灵丘县| 孟州市| 定边县| 通化市| 遂川县| 江源县| 平度市| 梁平县| 西昌市| 康马县| 诸暨市| 万安县| 进贤县| 长泰县| 德安县| 达拉特旗| 宜宾市| 剑川县| 彭阳县| 同江市| 新巴尔虎左旗| 大英县| 石门县| 扬州市| 耿马| 阿坝| 平乐县| 广平县| 苗栗县| 色达县| 乐陵市| 福鼎市| 富顺县|