รายละเอียดของการตอบ ::
return new BigDecimal(val.toString()).setScale(2,RoundingMode.HALF_UP).doubleValue();
BigDecimal(val.toString()) <- สร้าง instance ของ object BigDecimal constructor นี้จะ return instance BigDecimal ที่เก็บค่าที่ส่งเข้าไป
จากนั้น instance ที่ได้จะสามารถเรียก method ต่าง ๆ ใน object ได้
เราก็ทำการกำหนดจุดทศนิยมได้เลย
.setScale(2,RoundingMode.HALF_UP) <--- กำหนดทศนิยม 2 ตำแหน่ง และบังคับ rounding mode แบบเกินครึ่งปัดขึ้น
(Method นี้ก็จะ return instance BigDecimal ที่มีค่าที่ส่งให้ครั้งแรกและกำหนดตำแหน่งทศนิยมเรียบร้อย)
.doubleValue() <--- return เป็น instance ของ Object Double ครับ (ปกติผมจะใช้แต่ BigDecimal ครับ ไม่เคยใช้ .doubleValue เหมือนกัน)
**ระวังเรื่อง pass by ref. กับ by val. นะครับ ส่วนนี้ไปหาอ่านและทดสอบเองนะครับ