เทคนิคเกี่ยวกับวิธีเพิ่มเครื่องหมายจุลภาค(,)ให้กับตัวเลขใน Javascript คุณมีโครงการที่ต้องแสดง "ตัวเลขให้ดูดี" หรือไม่?
วิธีง่ายๆ ในการเพิ่มเครื่องหมายจุลภาคให้กับตัวเลขใน Javascript คือ:
- ใช้ฟังก์ชัน toLocaleString()
var num = 1234567.89
var commas = num.toLocaleString ("en-US")
console.log(num.toLocaleString("en-US")); // 1,234,567.89
console.log(num.toLocaleString("fr-FR")); // 1 234 567,89
console.log(num.toLocaleString("ja-JP", { style: "currency", currency: "JPY" }));
- แปลงตัวเลขเป็นสตริง และใช้นิพจน์ทั่วไปแทนที่
console.log(commas); // 1,234,567.89
- แทรกเครื่องหมายจุลภาคด้วยตนเอง
// (A) ADD COMMAS TO SEPERATE GIVEN NUMBER
// num : original number
// per : add comma per n digits (default 3)
// places : number of decimal places (default 2)
function addComma (num, per, places) {
// (A1) SET DEFAULTS
if (per==undefined) { per = 3; }
if (places==undefined) { places = 2; }
// (A2) NO DECIMAL PLACES - ROUND OFF
// REMOVE THIS IF YOU DON'T WANT TO ROUND OFF
if (places==0) { num = Math.round(num); }
// (A3) SPLIT WHOLE & DECIMAL NUMBERS
var cString = num.toString(),
cDot = cString.indexOf("."),
cWhole = "", cDec = "";
if (cDot == -1) {
cWhole = cString;
cDec = 0;
} else {
cWhole = cString.substring(0, cDot);
cDec = cString.substring(cDot+1);
}
// (A4) ADD COMMAS TO WHOLE NUMBER
var aComma = "", count = 0;
if (cWhole.length > per) { for (let i=(cWhole.length-1); i>=0; i--) {
aComma = cWhole.charAt(i) + aComma;
count++;
if (count == per && i!=0) {
aComma = "," + aComma;
count = 0;
}
}} else { aComma = cWhole; }
// (A5) ROUND OFF TO GIVEN DECIMAL PLACES
if (places==0) { cDec = ""; }
else {
cDec = +("0." + cDec);
cDec = cDec.toFixed(places).toString().substring(1);
}
// (A6) RETURN "WHOLE WITH COMMA" PLUS DECIMAL PLACES
return aComma + cDec;
}
// (B) TEST
// (B1) WHOLE NUMBER
var whole = 123456789;
console.log(addComma(whole)); // 123,456,789.00
console.log(addComma(whole, 4, 0)); // 1,2345,6789
// (B2) DECIMAL
var dec = 23456.78;
console.log(addComma(dec)); // 23,456.78
console.log(addComma(dec, 2, 0)); // 2,34,57