วิธีใช้ toLocaleString() และ toFixed(2) ใน JavaScript
ฉันสามารถทำสิ่งนี้ใน JavaScript ได้อย่างไร?
var num = 2046430;
num.toLocaleString();
will give you "2,046,430";
สิ่งที่ฉันได้ลองคือ:
var num = 2046430;
num.toLocaleString().toFixed(2);
ผลลัพธ์ที่คาดไว้
2,046,430.00
คำตอบ #1
นำมาจาก MDN:
วากยสัมพันธ์
numObj.toLocaleString([locales [, options]])toLocaleString รับค่าอาร์กิวเมนต์ 2 ตัว ตัวแรกคือ locale ตัวที่สองคือ options สำหรับ options คุณกำลังมองหา:
จำนวนหลักทศนิยมขั้นต่ำ
จำนวนตัวเลขทศนิยมขั้นต่ำที่ต้องใช้ ค่าที่เป็นไปได้มีตั้งแต่ 0 ถึง 20; ค่าปริยายสำหรับการจัดรูปตัวเลขปกติและเปอร์เซ็นต์คือ 0; ค่าปริยายสำหรับการจัดรูปรายการสกุลเงินคือจำนวนตัวเลขหน่วยย่อยที่กำหนดโดยรายการรหัสสกุลเงิน ISO 4217 (2 หากรายการไม่ได้ให้ข้อมูลนั้น)
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
เพื่อที่จะสามารถตั้งค่าตัวเลือกโดยไม่ตั้งค่า locale คุณสามารถส่ง undefined เป็นอาร์กิวเมนต์ตัวแรกได้:
var num = 2046430;
num.toLocaleString(undefined, {minimumFractionDigits: 2}) // 2,046,430.00
อย่างไรก็ตาม สิ่งนี้ยังทำให้เศษส่วนสามารถยาวเกิน 2 หลักได้ ดังนั้นเราจึงต้องมองหาตัวเลือกอีกตัวที่เรียกว่า maximumFractionDigits (ก็มีในหน้านั้นของ MDN ด้วย)
var num = 2046430.123;
console.log(num.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2
})); // 2,046,430.12