<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Fork me on GitHub

      JavaScript 中的四舍五入

      在 JavaScript 中,對數值進行四舍五入操作的場景有以下幾種:

      • 向上取整:ceil
      • 向下取整:floor
      • 四舍五入:round
      • 固定精度:toFixed
      • 固定長度:toPrecision
      • 取整:trunc、parseInt、位運算

      本文將對這 6 個 API 進行簡單的講解和總結。

      1、向上取整: ceil

      ceil 是`天花板`的意思,表示在一個數值之上,且距離該數最近的整數。ceil 是 Math 對象的靜態方法,需要傳遞一個參數,其調用方法如下:

      Math.ceil(12.34); //13
      Math.ceil(12.68); //13

      2、向下取整: floor

      floor 是`地板`的意思,表示在一個數值之下,且距離該數最近的整數。floor 是 Math 對象的靜態方法,需要傳遞一個參數,其調用方法如下:

      Math.floor(12.34); // 12
      Math.floor(12.68); // 12

      3、四舍五入: round

      round 的作用是對一個浮點數進行四舍五入,并保留整數位。round 也是 Math 對象的靜態方法,也需要傳遞一個參數,其調用方法如下:

      Math.round(12.34); // 12
      Math.round(12.54); // 13

      4、固定精度: toFixed

      toFixed 和上面三個方法不同,它是 Number 原型上實現的一個方法,其作用是對一個浮點數進行四舍五入并保留固定小數位 toFixed 需要傳遞一個參數,其調用方式如下:

      100.456001.toFixed(2); // 100.46
      100.456001.toFixed(3); // 100.456

      5、固定長度: toPrecision

      toPrecison 也是 Number 原型上實現的一個處理浮點數的方法,和 toFixed 不同的是,它是對一個浮點數進行四舍五入并保留固定長度的有效數字,包括整數部分。

      99.456001.toPrecision(5);  // 99.456
      100.456001.toPrecision(5); // 100.46

       6、取整: parseInt

      parseInt 是 全局對象 window上的一個方法,其作用是對一個可轉換的數值取整,分為以下兩種情況:

      1. 將字符串數值轉化為 Number 整數,對字符串的每一個字符進行轉化,直到遇到不可轉化的字符(包括小數點)停止。

      2. 對浮點類型數值取整,忽略小數部分,不做四舍五入處理

      // 字符串數值
      parseInt('100') ; // 100
      parseInt('100axt'); // 100
      parseInt('100xh20'); // 100
      parseInt('100.78'); // 123
      // Number 類型
      parseInt(100.12) ; // 100
      parseInt(100.78); // 100

      7、取整: 位運算

      • | 0   : 和 0 進行 按位或 操作,原值不變
      • ~~   : 兩次 按位非 操作得到的也是原值
      • >> 0 : 右移 0 位
      • << 0 : 左移 0 位
      • >>> 0: 無符號右移 0 位 

      這些位運算符在實現取整操作時,會表現出一些共同的特征:

      • 對于 Number 類型來說,直接應用位操作, 和 parseInt 得到的結果幾乎一樣;
      • 對于其他類型,內部會先通過 Number() 將其轉換為一個數值,然后再應用位操作。
      • 對特殊 NaN 和 Infinity 值應用位操作時,這兩個值都會被當成 0 來處理 。

      對于 Number 類型,直接應用位運算。

      ~~ 100.12;  //  100
      100.78  |  0;    //  100
      100.45 >>  0;    //  100
      100.50 <<  0;   // 100
      100.96 >>> 0;    //  100

      對于其他類型,先使用 Number() 轉換為數值類型,再進行位運算。

      ~~ '100.12'  // 100, Number('100.12') == 100.12
      '100.50'  >> 0;  // 100,Number('100.50') == 100.50
      '100.96'  << 0;  // 100,Number('100.96') == 100.96
      ~~ 'abc'  // 0 , Number('abc') == NaN
      '12abc'  >> 0;  // 0, Number('12abc') == NaN
      undefined | 0 ; // 0, Number(undefined) == NaN
      ~~null;      // 0 , Number(null) == 0
      true >> 0; // 1 , Number(true) == 1
      false >> 0; //0 , Number(false) == 0
      []  << 0;     // 0 , Number([]) == 0
      ~~NaN; // 0 
      Infinity >>> 0; // 0
      

      位運算作用于最基本的層次上,即按內存中表示數值的位來操作數值。

      位運算能取整的原因是:

      ECMAScript 中的數值以64位雙精度浮點數存儲,但位運算只能作用于整數,因此要先將 64 位的浮點數轉換成 32 位的整數,然后再進行位運算,最后再將計算結果轉換成64位浮點數存儲。

       

      8、取整: trunc

      trunc 是 Math 對象上新增的 Api,用于去除一個數的小數部分,返回整數部分:

      Math.trunc(1.2); // 1
      Math.trunc(1.8); // 1
      Math.trunc(0.5); // 0
      

        

       

      原創發布 @ 一像素  2018.06

       

      posted @ 2016-01-19 11:07  一像素  閱讀(29924)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久精品一区二区东京热| 莱芜市| 丰满少妇被猛烈进出69影院| 在线日韩日本国产亚洲| 一边吃奶一边做动态图| 在线观看视频一区二区三区| 人妻有码中文字幕在线| 国产AV影片麻豆精品传媒| 99久久免费精品国产色| 成人国产精品免费网站| 国产av丝袜旗袍无码网站| 日韩人妻无码一区二区三区99| 天天干天天日| 伊人精品成人久久综合97| 日本在线视频网站www色下载| 任我爽精品视频在线播放| 国产精品十八禁在线观看| 国内精品久久久久影院薰衣草| 一本久道久久综合狠狠躁av| 亚洲av无码精品色午夜蛋壳| 丰县| av在线播放无码线| 高清性欧美暴力猛交| 日本深夜福利在线观看| 日韩一区二区三区女优丝袜| 日韩av在线不卡一区二区三区| 国产自在自线午夜精品| 毛多水多高潮高清视频| 偷窥少妇久久久久久久久| 国产精品日韩深夜福利久久| 日韩伦理片一区二区三区| 亚洲av永久无码精品水牛影视| 亚洲av无码之国产精品网址蜜芽| 龙山县| 亚洲精品国产一二三区| 日韩中文字幕人妻一区| 亚洲精品色哟哟一区二区| 国产精品一区 在线播放| 少妇爽到爆视频网站免费| 精品日韩人妻中文字幕| 18禁动漫一区二区三区|