成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

給一個(gè)數(shù)值加千位分隔號(hào)

lunaticf / 1773人閱讀

摘要:遞歸思路是在小數(shù)點(diǎn)前數(shù)位數(shù)如果沒(méi)有小數(shù)點(diǎn)則以最后一位計(jì)算,添加,遞歸,在第一個(gè)逗號(hào)前數(shù)位再添加。

想要的效果:
123456789.123 --> 123,456,789.123
直接貼代碼:

function splitK(num) {
  var decimal = num.split(".")[1] || "";//小數(shù)部分
  var tempArr = [];
  var revNumArr = num.split(".")[0].split("").reverse();//倒序
  for (i in revNumArr){
    tempArr.push(revNumArr[i]);
    if((i+1)%3 === 0 && i != revNumArr.length-1){
      tempArr.push(",");
    }
  }
  var zs = tempArr.reverse().join("");//整數(shù)部分
  return decimal?zs+"."+decimal:zs;
}
var num = "123456789.123";
console.log(splitK(num));
//輸出:123,456,789.123
    

思路很簡(jiǎn)單:
先分離出小數(shù)部分;
對(duì)整數(shù)部分逆序?yàn)閿?shù)組;
每三個(gè)數(shù)字插入一個(gè)逗號(hào),如果是3的倍數(shù)位則最后一個(gè)不插入;
再逆序回來(lái),拼接小數(shù)部分(如果有的話)。

遞歸:

function splitK(num) {
    var temp = num;
    var i = ((num.indexOf(",")>0)?num.indexOf(","):num.indexOf("."));
    i = (i<0)?(num.length-3):(i-3);
    num = num.substring(0,i)+","+num.substring(i);
    if(i<1){return temp;}else {return splitK(num);}
}

var num = "123456789.123";
console.log(splitK(num));

思路是:在小數(shù)點(diǎn)前數(shù)3位數(shù)(如果沒(méi)有小數(shù)點(diǎn)則以最后一位計(jì)算),添加",",遞歸,在第一個(gè)逗號(hào)前數(shù)3位再添加","。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79947.html

相關(guān)文章

  • 原生js之千位分隔符(包括小數(shù)情況)

    摘要:同學(xué)前端面試遇到這么一個(gè)題目給數(shù)字添加千分位分隔符一拿到他給的面試題,感覺(jué)挺容易的,不過(guò)等自己寫(xiě)后發(fā)現(xiàn)非??紤]邏輯,以及思維能力我是小白上網(wǎng)百度了一波全是用正則表達(dá)式來(lái)解決的,正則這塊我只懂皮毛,所以感覺(jué)有點(diǎn)看不明白,不過(guò)這個(gè)博客解釋挺清楚 同學(xué)前端面試遇到這么一個(gè)題目 :給數(shù)字添加千分位分隔符 一拿到他給的面試題,感覺(jué)挺容易的,不過(guò)等自己寫(xiě)后發(fā)現(xiàn)非常考慮邏輯,以及思維能力(我是小白)...

    msup 評(píng)論0 收藏0
  • 數(shù)字的千位分隔符實(shí)現(xiàn)

    摘要:常常見(jiàn)到這種場(chǎng)景,數(shù)字比較大時(shí)每隔位用逗號(hào)分隔開(kāi)思路就是如果是小數(shù)的話先用分開(kāi)得到整數(shù)部分,然后反轉(zhuǎn)整數(shù)部分的字符串用正則每個(gè)數(shù)字加一個(gè)逗號(hào)然后再反轉(zhuǎn)回去拼接上小數(shù)部分。 常常見(jiàn)到這種場(chǎng)景,數(shù)字比較大時(shí)每隔3位用逗號(hào)分隔開(kāi) 思路就是如果是小數(shù)的話先用split分開(kāi)得到整數(shù)部分,然后反轉(zhuǎn)整數(shù)部分的字符串用正則每3個(gè)數(shù)字加一個(gè)逗號(hào)然后再反轉(zhuǎn)回去拼接上小數(shù)部分。 在網(wǎng)上看到了一種實(shí)現(xiàn)代碼,這...

    ssshooter 評(píng)論0 收藏0
  • js實(shí)現(xiàn)千位分隔

    function commafy(num) { num = num + ; var reg = /(-?d+)(d{3})/; if(reg.test(num)){ num = num.replace(reg, $1,$2); } return num; } commafy(1234);

    NeverSayNever 評(píng)論0 收藏0
  • Java? 教程(掃描)

    掃描 編程I/O通常涉及轉(zhuǎn)換人們喜歡使用的整齊格式的數(shù)據(jù),為了幫助你完成這些工作,Java平臺(tái)提供了兩個(gè)API,掃描器API將輸入分解為與數(shù)據(jù)位相關(guān)聯(lián)的單個(gè)標(biāo)記,格式化API將數(shù)據(jù)組裝成格式良好、可讀的形式。 Scanner類(lèi)型的對(duì)象對(duì)于將格式化輸入分解為標(biāo)記并根據(jù)其數(shù)據(jù)類(lèi)型轉(zhuǎn)換單個(gè)標(biāo)記非常有用。 將輸入分解為標(biāo)記 默認(rèn)情況下,掃描器使用空格分隔標(biāo)記(空格字符包括空格、制表符和行終止符,有關(guān)完整列...

    dantezhao 評(píng)論0 收藏0
  • [PHP源碼閱讀]number_format函數(shù)

    摘要:上次講到是如何解析大整數(shù)的,一筆帶過(guò)了的處理,再詳細(xì)閱讀該函數(shù)的源碼,以下是小分析??偨Y(jié)閱讀完這個(gè)函數(shù)的源碼,學(xué)習(xí)到的是浮動(dòng)數(shù)與字符串的互相轉(zhuǎn)換的實(shí)現(xiàn)細(xì)節(jié),字符串與浮點(diǎn)數(shù)之間的關(guān)系較復(fù)雜,之后還要繼續(xù)學(xué)習(xí)。 上次講到PHP是如何解析大整數(shù)的,一筆帶過(guò)了number_format的處理,再詳細(xì)閱讀該函數(shù)的源碼,以下是小分析。 函數(shù)原型 string number_format ( flo...

    itvincent 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<