摘要:遞歸思路是在小數(shù)點前數(shù)位數(shù)如果沒有小數(shù)點則以最后一位計算,添加,遞歸,在第一個逗號前數(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
思路很簡單:
先分離出小數(shù)部分;
對整數(shù)部分逆序為數(shù)組;
每三個數(shù)字插入一個逗號,如果是3的倍數(shù)位則最后一個不插入;
再逆序回來,拼接小數(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ù)點前數(shù)3位數(shù)(如果沒有小數(shù)點則以最后一位計算),添加",",遞歸,在第一個逗號前數(shù)3位再添加","。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79947.html
摘要:同學(xué)前端面試遇到這么一個題目給數(shù)字添加千分位分隔符一拿到他給的面試題,感覺挺容易的,不過等自己寫后發(fā)現(xiàn)非常考慮邏輯,以及思維能力我是小白上網(wǎng)百度了一波全是用正則表達(dá)式來解決的,正則這塊我只懂皮毛,所以感覺有點看不明白,不過這個博客解釋挺清楚 同學(xué)前端面試遇到這么一個題目 :給數(shù)字添加千分位分隔符 一拿到他給的面試題,感覺挺容易的,不過等自己寫后發(fā)現(xiàn)非常考慮邏輯,以及思維能力(我是小白)...
摘要:常常見到這種場景,數(shù)字比較大時每隔位用逗號分隔開思路就是如果是小數(shù)的話先用分開得到整數(shù)部分,然后反轉(zhuǎn)整數(shù)部分的字符串用正則每個數(shù)字加一個逗號然后再反轉(zhuǎn)回去拼接上小數(shù)部分。 常常見到這種場景,數(shù)字比較大時每隔3位用逗號分隔開 思路就是如果是小數(shù)的話先用split分開得到整數(shù)部分,然后反轉(zhuǎn)整數(shù)部分的字符串用正則每3個數(shù)字加一個逗號然后再反轉(zhuǎn)回去拼接上小數(shù)部分。 在網(wǎng)上看到了一種實現(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);
掃描 編程I/O通常涉及轉(zhuǎn)換人們喜歡使用的整齊格式的數(shù)據(jù),為了幫助你完成這些工作,Java平臺提供了兩個API,掃描器API將輸入分解為與數(shù)據(jù)位相關(guān)聯(lián)的單個標(biāo)記,格式化API將數(shù)據(jù)組裝成格式良好、可讀的形式。 Scanner類型的對象對于將格式化輸入分解為標(biāo)記并根據(jù)其數(shù)據(jù)類型轉(zhuǎn)換單個標(biāo)記非常有用。 將輸入分解為標(biāo)記 默認(rèn)情況下,掃描器使用空格分隔標(biāo)記(空格字符包括空格、制表符和行終止符,有關(guān)完整列...
摘要:上次講到是如何解析大整數(shù)的,一筆帶過了的處理,再詳細(xì)閱讀該函數(shù)的源碼,以下是小分析。總結(jié)閱讀完這個函數(shù)的源碼,學(xué)習(xí)到的是浮動數(shù)與字符串的互相轉(zhuǎn)換的實現(xiàn)細(xì)節(jié),字符串與浮點數(shù)之間的關(guān)系較復(fù)雜,之后還要繼續(xù)學(xué)習(xí)。 上次講到PHP是如何解析大整數(shù)的,一筆帶過了number_format的處理,再詳細(xì)閱讀該函數(shù)的源碼,以下是小分析。 函數(shù)原型 string number_format ( flo...
閱讀 3736·2021-11-24 09:39
閱讀 2617·2019-08-30 15:54
閱讀 1159·2019-08-30 13:01
閱讀 3436·2019-08-28 18:30
閱讀 1631·2019-08-26 17:44
閱讀 3598·2019-08-26 11:31
閱讀 2424·2019-08-26 10:40
閱讀 1252·2019-08-26 10:27