您現在的位置: 365建站網 > 365學習 > JS/javascript取整數 取絕對值 四舍五入(可保留兩位小數)方法整理

JS/javascript取整數 取絕對值 四舍五入(可保留兩位小數)方法整理

文章來源:365jz.com     點擊數:1316    更新時間:2017-12-08 11:12   參與評論
JS/JavaScript 小數取整的函數:

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

js:parseInt(7/2) 

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

js: Math.ceil(7/2) 

3,四舍五入. 
js: Math.round(7/2) 

4,向下取整 

js: Math.floor(7/2)


JS/javascript取絕對值:

絕對值在js中我們直接使用abs函數來求,這里就來整理一些關于js中取得變量的絕對值的方法,以便讓大家更深入的理解js絕對值的用法

js中的絕對值不怎么常用到,今天在寫一個方法的時候遇到了,于是記錄下來,與大家共同學習。

js中的默認對象——Math對象下面有一個abs函數,專門用來獲取數字的絕對值,如:

Math.abs(-1);  //1

Math.abs(-2);  //2

當然,這個函數也可以用來獲取到變量的絕對值,如:

var aaa=-3;

var bbb=abs(aaa);  //3

例子:

<script language="javascript">

document.write("0的絕對值為:",Math.abs(0),"<br>");

document.write("1的絕對值為:",Math.abs(1),"<br>");

document.write("-1的絕對值為:",Math.abs(-1),"<br>");

//-->

</script>

另一種方法:

我們知道數學里面的絕對值是不論小數或者整數的,這里面當然也是這樣。

var aaa=-3.3;

var bbb=abs(aaa);  //3.3

JS/javascript四舍五入:

方法一:
在js中四舍五入的函數 tofixed(n) , n為要保留的小數位數。
n為0~20,當n超過20的時候,js會出錯。
var d=10.005;
  var f=d.tofixed(2);
  alert(f);
  bug:
  如果小數點前和要截取的前一位都是0時,不會按常理截取。
  var h=0.07
  h.tofixed(1)的值為0.0
  如果要修改這個缺陷,可以把js中的number類型的tofixed方法重寫。
例如:

 代碼示例:
number.prototype.tofixed = function(d)
  {
      var s=this+"";if(!d)d=0;
      if(s.indexof(".")==-1)s+=".";s+=new array(d+1).join("0");
      if (new regexp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
      {
  var s="0"+ regexp.$2, pm=regexp.$1, a=regexp.$3.length, b=true;
  if (a==d+2){a=s.match(/\d/g); if (parseint(a[a.length-1])>4)
  {
      for(var i=a.length-2; i>=0; i--) {a[i] = parseint(a[i])+1;
      if(a[i]==10){a[i]=0; b=i!=1;} else break;}
  }
  s=a.join("").replace(new regexp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
      }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
};  

這樣就可以修復number類型的tofixed方法。

方法二:

之前一直在用這個js自帶的tofixed函數來進行四舍五入的操作,可是,在實際使用過程中卻遇到了問題。
比如

復制代碼 代碼示例:
var money=0.00542;//0.006;  
alert(number(money).tofixed(2));  
//0.00 

以上結果是錯誤的,下面的方法通過巧妙的使用math.round函數,完全可以解決數值很小時的精度問題。

 代碼示例:
var money=0.00542;//0.006;  
alert(number(money).tofixed(2));  
 
function round2(number,fractiondigits){  
    with(math){  
        return round(number*pow(10,fractiondigits))/pow(10,fractiondigits);  
    }  
}  
alert(round2(money,2));//0.01
round 方法
返回與給出的數值表達式最接近的整數。
math.round(number)
必選項 number 參數是要舍入到最接近整數的值。
說明
如果 number 的小數部分大于等于 0.5,返回值是大于 number 的最小整數。
否則,round 返回小于等于 number 的最大整數。 

js 四舍五入函數 toFixed(),里面的參數 就是保留小數的位數。
<script language="javascript">
document.write("<h1>JS保留兩位小數例子</h1><br>"); 
   var a=2.1512131231231321; 
   document.write("原來的值:"+a+"<br>"); 
   document.write("兩位小數點:"+a.toFixed(2)+"<br>四位小數點"+a.toFixed(4)); 
</script

如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇


發表評論 (1316人查看,0條評論)
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼: 點擊我更換圖片
最新評論
------分隔線----------------------------
自拍偷拍福力视频,偷拍国际精品,麻豆一区福利电影,国产网红视频午夜福利,se视频大全,久久国产AV影院 对白脏话肉麻粗话视频| caoprom国产在线视频| 日月拍天天拍视频在线观看| 亚洲欧美日产综合在线网| 儿孑今晚满足你| 又大又粗又爽又黄少妇毛片| 国模吧双双大尺度炮交GOGO| 12学生裸身全视频在线观看| 浓毛老太bbww| 真实少妇推油牲交在线| 97任你碰任你摸任你爽| Chinese hot video| 娇妻被朋友日出白浆| 老板你的太长太大了| 两个人的免费hd完整| 清纯学生脱裙子自慰| 香蕉免费一区二区三区在| chineseboy18帅哥飞机| 波多野结衣一区二区三区AV高清| 亚洲国产在线二区三区| 国内久久这里只有精品| 欧美第一黄网免费网站| 美女裸体无遮挡免费视频免费| 成·人免费午夜无码视频在线观看| 偷 窥 自 拍 亚 洲 色 图| >jayden cole| 免费高清视频| 999久久免费精品国产| 色综合av社区男人的天堂| 亚洲 欧洲 日产国码| 欧美精品黑人粗大| http://www.cnhngk.com