ค้นหาเว็บไซต์

วิธีใช้ 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

บทความที่เกี่ยวข้อง