Tutorial

Java Class - DecimalFormat เขียนแม่มก่อนวันสอบนี่แหละ

By Arnon Puitrakul - 11 มีนาคม 2015

Java Class - DecimalFormat เขียนแม่มก่อนวันสอบนี่แหละ

พรุ่งนี้จะสอบ เจแว้ แล้วเห็นหลายคนถามเยอะมากว่า DecimalFormat มันคืออะไรแว้ๆๆ วันนี้จะมาตอบให้อ่านกัน
จริงๆแล้วเจ้า DecimalFormat เป็น Class นึงที่อยู่ในภาษา Java ที่ช่วยให้เราจัดการกับตัวเลขทศนิยมได้ง่ายขึ้น ก่อนอื่น ก่อนจะใช้เราจะต้อง Import Class เข้ามาก่อน

Import java.text.DecimalFormat

D ใหญ่ F ใหญ่นะเหวย อย่าเขียนผิด เขียนผิดตัวแดง Compile ไม่ผ่านเลยนะเหวย!!!
ทีนี้มาถึงวิธีการใช้ มันง่ายมากๆ แค่เรา New มันขึ้นมาเหมือนกับ Object ทั่วๆไป

DecimalFormat df = new DecimalFormat();
df.applyPattern("0.00");

หลังจากที่ผมสร้างมันออกมาเป็น Object แล้ว ก็เรียกใช้ Method ชื่อ applyPattern() เพื่อใส่รูปแบบให้กับมัน ถามต่อว่าทำไมต้องเป็น 0.00 ล่ะ?
นั่นเพราะว่าผมต้องการทศนิยม 2 ตำแหน่งนั่นเองเช่นจาก 6.1115 เป็น 6.11 เป็นต้น แต่เดี๋ยวก่อน จริงๆแล้วยังมี Pattern แบบอื่นอีกด้วยน้า เช่น **# จะเป็นการบอกว่าถ้ามีก็ใส่ถ้าไม่มีก็ไม่ต้อง **ต่างจาก 0 ตรงที่ 0 จะบังคับถ้าไม่มีมันก็ใส่ 0 ไปถ้ามีมันก็ใส่ตัวเลขไป
ทีนี้เวลาจะแปลงตัวเลขก็เพียงแค่เรียก Method ชื่อ format() ได้เลยเช่น

System.out.println(df.format(6.1115));

รู้สึกมั้ยว่าแค่เนี้ยทำไมเขียนตั้ง 3 บรรทัด เปลืองว่ะ! ได้ครับเดียวเขียนให้เหลือบรรทัดเดียวเลย

System.out.println(new DecimalFormat("0.00").format(6.1115);

จากที่เห็นว่าเราสามารถป้อน Pattern ผ่าน Constructor ได้เลยสะดวกมากๆ จบและไบ่~~
**Source Code : **https://drive.google.com/folderview?id=0BwrPA9Miv4o2eGxIcWVielVVbzQ&usp=sharing

Read Next...

จัดการข้อมูลบน Pandas ยังไงให้เร็ว 1000x ด้วย Vectorisation

จัดการข้อมูลบน Pandas ยังไงให้เร็ว 1000x ด้วย Vectorisation

เวลาเราทำงานกับข้อมูลอย่าง Pandas DataFrame หนึ่งในงานที่เราเขียนลงไปให้มันทำคือ การ Apply Function เข้าไป ถ้าข้อมูลมีขนาดเล็ก มันไม่มีปัญหาเท่าไหร่ แต่ถ้าข้อมูลของเราใหญ่ มันอีกเรื่องเลย ถ้าเราจะเขียนให้เร็วที่สุด เราจะทำได้โดยวิธีใดบ้าง วันนี้เรามาดูกัน...

ปั่นความเร็ว Python Script เกือบ 700 เท่าด้วย JIT บน Numba

ปั่นความเร็ว Python Script เกือบ 700 เท่าด้วย JIT บน Numba

Python เป็นภาษาที่เราใช้งานกันเยอะมาก ๆ เพราะความยืดหยุ่นของมัน แต่ปัญหาของมันก็เกิดจากข้อดีของมันนี่แหละ ทำให้เมื่อเราต้องการ Performance แต่ถ้าเราจะบอกว่า เราสามารถทำได้ดีทั้งคู่เลยละ จะเป็นยังไง เราขอแนะนำ Numba ที่ใช้งาน JIT บอกเลยว่า เร็วขึ้นแบบ 700 เท่าตอนที่ทดลองกันเลย...

Humanise the Number in Python with "Humanize"

Humanise the Number in Python with "Humanize"

หลายวันก่อน เราทำงานแล้วเราต้องการทำงานกับตัวเลขเพื่อให้มันอ่านได้ง่ายขึ้น จะมานั่งเขียนเองก็เสียเวลา เลยไปนั่งหา Library มาใช้ จนไปเจอ Humanize วันนี้เลยจะเอามาเล่าให้อ่านกันว่า มันทำอะไรได้ แล้วมันล่นเวลาการทำงานของเราได้ยังไง...

ทำไม 0.3 + 0.6 ถึงได้ 0.8999999 กับปัญหา Floating Point Approximation

ทำไม 0.3 + 0.6 ถึงได้ 0.8999999 กับปัญหา Floating Point Approximation

การทำงานกับตัวเลขทศนิยมบนคอมพิวเตอร์มันมีความลับซ่อนอยู่ เราอาจจะเคยเจอเคสที่ เอา 0.3 + 0.6 แล้วมันได้ 0.899 ซ้ำไปเรื่อย ๆ ไม่ได้ 0.9 เพราะคอมพิวเตอร์ไม่ได้มองระบบทศนิยมเหมือนกับคนนั่นเอง บางตัวมันไม่สามารถเก็บได้ เลยจำเป็นจะต้องประมาณเอา เราเลยเรียกว่า Floating Point Approximation...