js處理數字太長分位顯示


/*******
 * num:待處理數字
 * precision:保留小數位
 * separator:分隔符
 * eg:formatNumber(100000000) 結果"100,000,000"  
 * formatNumber(100000000,2); 結果:"100,000,000.00" 
 * formatNumber(100000000,2,"?"); 結果:"100?000?000.00"
 *********/
function formatNumber(num, precision, separator) {
    var parts;
    // 判斷是否為數字
    if (!isNaN(parseFloat(num)) && isFinite(num)) {
        // 把類似 .5, 5. 之類的數據轉化成0.5, 5, 為數據精度處理做准, 至於為什么
        // 不在判斷中直接寫 if (!isNaN(num = parseFloat(num)) && isFinite(num))
        // 是因為parseFloat有一個奇怪的精度問題, 比如 parseFloat(12312312.1234567119)
        // 的值變成了 12312312.123456713
        num = Number(num);
        // 處理小數點位數
        num = (typeof precision !== 'undefined' ? num.toFixed(precision) : num).toString();
        // 分離數字的小數部分和整數部分
        parts = num.split('.');
        // 整數部分加[separator]分隔, 借用一個著名的正則表達式
        parts[0] = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + (separator || ','));

        return parts.join('.');
    }
    return NaN;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM