close
有時候我們必需將數字加上每三個位數加上一個逗號,例如20000變成20,000,目的在於方便財務上閱讀。所以我整理了下列出幾種解決的方法
第一個方法用javascript寫一個數字格式化函式
// 於 2015-04-23 修正 function formatNumber(str, glue) { // 如果傳入必需為數字型參數,不然就噴 isNaN 回去 if(isNaN(str)) { return NaN; } // 決定三個位數的分隔符號 var glue= (typeof glue== 'string') ? glue: ','; var digits = str.toString().split('.'); // 先分左邊跟小數點 var integerDigits = digits[0].split(""); // 獎整數的部分切割成陣列 var threeDigits = []; // 用來存放3個位數的陣列 // 當數字足夠,從後面取出三個位數,轉成字串塞回 threeDigits while (integerDigits.length > 3) { threeDigits.unshift(integerDigits.splice(integerDigits.length - 3, 3).join("")); } threeDigits.unshift(integerDigits.join("")); digits[0] = threeDigits.join(glue); return digits.join("."); } //測試函式(注意數字要以字串輸入) var money = formatNumber('1234567890'); alert(money); //輸出結果為:1,234,567,890 var money = formatNumber('1234567890.321','`'); //輸出結果為:1`234`567`890.321
當然在PHP,你有更快速的方法:
//測試函式參數說明 // 1) 欲轉換的數字 // 2) 小數位數 // 3) 小數點的顯示字元 // 4) 三位數的顯示字元 $number = 1234567890.321; echo number_format($number, 2, '.' ,',');//輸出結果為:1,234,567,890.32 echo number_format($number, 1, '*' ,'#');//輸出結果為:1#234#567#890*3
詳細的用法參考:number_format() ,甚至更進階的函式可參考:money_format()
另外一種方法是在執行SQL查詢時,就先將數字進行轉換動作
--假設表單salary(薪水)有一個名稱為money(錢)的欄位 SELECT FORMAT(money, 4) FROM salary; --輸出結果將會把money的數字資料態轉為xx,xxx,xxx格式,以下為範圍輸出 SELECT FORMAT(12332.123456, 4); --輸出結果為:12,332.1235 SELECT FORMAT(12332.2,0) --輸出結果為:12,332 SELECT FORMAT(12332.1,4) --輸出結果為:12,332.1000
詳細的用法請參考:MySQL中文參考手冊【7.4.12其他函數】
全站熱搜