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