Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

PoC :: ลองจัดการรูปแบบข้อมูลชนิด Floating-point

$
0
0

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

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

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

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

[gist id="c0113fcc8427bc973c639170a65c0fb4" file="1.json"]

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

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

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

[gist id="c0113fcc8427bc973c639170a65c0fb4" file="2.go"]

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

[gist id="c0113fcc8427bc973c639170a65c0fb4" file="main.go"]

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

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


Viewing all articles
Browse latest Browse all 1997

Trending Articles