ปัญหาที่เจอคือ
ต้องการให้ REST API ทำการ return ข้อมูลในรูปแบบของ JSON
โดย property ที่มี data type คือ float
ต้องการให้มีหลักหลังจุดทศนิยมตามที่เรากำหนด
จะต้องทำอย่างไร

ยกตัวอย่างเช่น

  • 50 => 50.00
  • 50.0 => 50.00
  • 50.1 => 50.10

ตัวอย่างของข้อมูลที่ return จาก REST API เป็นดังนี้

ดังนั้นจึงต้องเขียน code มาเพื่อแก้ไขปัญหานี้หน่อย

ปกติถ้าเป็น float นั้น ถ้าเรากำหนดค่า 50.10 ไป ผลที่ได้ใน JSON คือ 50.1
แน่นอนว่า ทำงานไม่เป็นไปตามที่เราต้องการ

ดังนั้นจึงทำการแก้ไขด้วยการ implement MarshalJSON() จาก interface Marshaler
สำหรับ type ต่าง ๆ นั่นเอง
เพื่อกำหนดรูปแบบของ float นั่นเอง
ยกตัวอย่างเช่น

จากนั้นก็ลองใช้งาน type Amount กันดู แบบง่าย ๆ
เพื่อจัดรูปแบบของ float ให้มี 2 ตำแหน่งหลังจุดทศนิยมเสมอ

เป็นอีกหนึ่งแนวทางง่าย ๆ ที่น่าสนใจ

ขอให้สนุกกับการ coding ครับ