๒๙ กรกฎาคม ๒๕๕๑

การปัดเศษสตางค์ของโปรแกรมคำนวนค่าโทรศัพท์

อยากจะบอกว่าเทคนิคนี้ก็ไม่ได้ใหญ่หลวงอะไร แต่มันเป็นเทคนิคเล็กๆน้อยๆน่ะครับ

ด้วยปัญหาที่ว่า เวลาเราประกาศตัวแปลเป็น float แล้ว พอทำอะไรไปกับมันซักอย่างแล้ว
เราอยากจะได้เลขจำนวนเต็มของมัน เพื่อจะเอาไปทำอะไรซักอย่าง

ผมไม่รู้จะยกตัวอย่างอะไรเลยจะยกถึงโปรแกรมคำนวนคิดค่าโทรโปรโมชั่นนะครับ
อย่างตอนเราปัดเศษเงินสตางค์น่ะครับ เราอาจจะทำแบบนี้ก็ได้น่ะครับ

float totalamount=53.34;

ตานี้ผมจะปัดเศษสตางค์ให้เป็น 54บาทนะครับ
ผมจะใช้โค๊ดแบบนี้ก็ได้น่ะครับ

if((totalamount-(int)totalamount)>0){
(int)totalamount++;
}

อธิบายนะครับ
totalamount-(int)totalamount
totalamount ค่าในตัวแปลนี้จะได้ 53.34 นะครับ
(int)totalamount แต่ท่อนนี้จะได้แค่ 53 ครับ เพราะว่า เมื่อห่อหุ้มให้เป็นintแล้วจะตัดจุดทศนิยมทิ้งให้เหลือแต่จำนวนเต็ม
(totalamount-(int)totalamount)>0
(53.34-53)>0 ในท่อนนี้จะหมายความว่าเมื่อได้เศษสตางศ์ 0.34 จรึงมากกว่า0
(int)totalamount++ จึงทำให้ 53บวกเข้าไปอีกหนึ่ง ก็เป็น54

ลองดูเทคนิคนี้ดูนะคัรบง่ายๆ ไม่ต้องปรับเปลี่ยนอะไรมากมาย
ผมอาจจะอธิบายไม่ชัดเจน เพราะมือใหม่น่ะครับ
จะพยายามฝึกฟรือไปเรื่อยๆ

ไม่มีความคิดเห็น: