BigDecimal

BigDecimal เป็นคลาส หนึ่ง ในคลาสมาตรฐานของ java ซึ่งอยู่ใน java.math.BigDecimal

Decimal ก็คือจำนวนทศนิยม Big ก็คือ ขนาดใหญ่ ดังนั้น BigDecimal ก็คือ จำนวนทศนิยมที่มีขนาดใหญ่ ๆ นั่นเอง

เมื่อเวลาเราใช้ จำนวนทศนิยม เราอาจจะใช้ ชนิด float หรือ double แต่เมื่อข้อมูลมีขนาดใหญ่มาก ๆ ชนิด float หรือ double จะเก็บข้อมูลไม่หมด ดังนั้น วิธีการแก้ปัญหา ก็คือ ใช้ class ของ java ที่มีชื่อว่า Decimal ครับ ดังนั้น เรามาดูวิธีใช้ class นี้กันครับ

BigDecimal bn1 = new BigDecimal("398169328193312379123.35632456234567890");  
BigDecimal bn2 = new BigDecimal("65746751673563487331231912301230.34586558");  
BigDecimal bn3 = bn1.multiply(bn2);  
//BigDecimal bn3 = bn1.add(bn2);
//BigDecimal bn3 = bn1.subtract(bn2);  
//BigDecimal bn3 = bn1.divide(bn2);  
System.out.println(bn3.toString());

กรณีหารแล้วเจอ ทศนิยมไม่สิ้นสุด เราต้องระบุว่าจะเอาทศนิยมกี่ตัว ไม่อย่างนั้นโปรแกรมจะ error

resultText = operand1.divide(operand2,200,RoundingMode.HALF_UP).toString();

จากตัวอย่างเอาทศนิยม 200 ตัว ปัดเศษขึ้นถ้าทศนิยมหลักสุดท้ายเกิน .5

Related posts:

This entry was posted in java. Bookmark the permalink.