วันพฤหัสบดีที่ 1 ตุลาคม พ.ศ. 2558
เทคนิคง่ายๆในการแสดงข้อมูลประเภทการเงิน การบัญชี ใน SQL SERVER
ในเรื่องเงินๆทองๆ หน่วยที่น้อยที่สุดคือ 1 สตางค์ (ทศนิยมสองตำแหน่งจะได้ 0.01) และ SQL SERVER ได้สร้างประเภทข้อมูลทางราคาไว้ให้ใช้งานง่ายๆแล้วคือ DECIMAL แต่การคำนวนจริงๆได้ข้อมูลที่ละเอียดกว่า 2 ตำแหน่งอยู่แล้ว ตัวอย่างง่ายๆก็เช่น อยากได้ค่าภาษี(6.3%) กับสินค้า 1295 บาท จะได้ 81.585 คำถามคือ 0.005 ที่เกินมาเราจะทำยังไง
ปล.ตอนรับเรทภาษีมูลค่าเพิ่มใหม่จาก 7% เป็น 6.3% ที่เริ่ม 1 ตุลานี้ เลยเขียนบทความนี้เป็นตัวอย่างซะเลย
เราก็จะปัดขึ้นหรือปัดลงตามปกติ แต่เมื่อสินค้ามีเพิ่มเป็นร้อย เป็นพันชิ้น มันจะเริ่มเห็นความเเตกต่างของเงินที่คำนวนได้ ก็เงินที่จ่ายจริงๆ ในภาษาโปรแกรมเราสามารถเก็บค่าก่อนปัดเศษเพิ่อเอาไว้คำนวนต่อมีฟังชั่นประมาณนี้
ROUND() คือการปัดขึ้นถ้าเศษสุดท้ายมากกว่า 5 และปัดลงถ้าเศษน้อยกว่า 5 สามารถกำหนดความละเอียดของตำแหน่งทศนิยมได้
SELECT ROUND(81.585, 3, 2)
-- 81.585
แล้วยังกำหนดความละเอียดของหลักที่จะเริ่มปัดได้ เช่น
SELECT ROUND(81.585, 2)
-- 81.590
FLOOR() คือการปัดลงทุกกรณี
SELECT FLOOR(81.585)
-- 81
CEILING() คือการปัดขึ้นทุกกรณี
SELECT CEILING(81.585)
-- 82
อีกเทคนิคหนึ่งคือการ CAST หรือการเปลี่ยน TYPE ของตัวเลขซะเลย ซึ่งจริงๆแล้วมันคือการ ROUND() ก่อน CAST() เช่น
SELECT CAST( 0.0453 AS DECIMAL(10,2))
--0.05
*จะเห็นว่าเศษโดนปัดก่อนแปลงเป็นทศนิยม 2 หลัก
ถ้าคุณเขียนโปรแกรมเกี่ยวกับฟังชั่นคำนวนบัญชีคงจะมีประโยชน์อยู่ไม่น้อย เพราะงานเหล่านี้ทุกทศนิยมต้องเปะๆเท่ากัน ห้ามมีตกหล่น แล้วการปัดเศษง่ายๆนี้แหละที่ทำให้พลาดกัน
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
May be like this posts
- 13/08/2015 - 0 Commentsหากต้องสร้าง Web API ขึ้นมาสักตัวนึงไว้ให้ลูกค้าหรือVerdor…
- 11/09/2013 - 2 Commentsคราวที่แล้วผม Blog เกี่ยวกับการติดต่อฐานข้อมูลด้วย SQLConnection ไปแล้ว…
- 10/08/2016 - 0 Comments***เพิ่มเติม : ปัจจุบันผมเลิกเล่นผ่าน emulator เเล้วนะครับ บทความนี้กลายเป็นอดีตไปละ…
- 04/08/2017 - 0 Commentsเป็นความอารมณ์เสียอย่างหนึ่งเมื่อต้องแก้งาน PDF แล้วเครื่องเราไม่มี software สำหรับแก้…
- 18/05/2014 - 0 Commentsวันนี้ 19/5 เข้าหน้ากูเกิ้ลแล้วเจอ Doodle ตัวใหม่ เป็นรูบิค 3x3…
- 28/05/2013 - 0 Commentsลบ .Bak แสนกวนใจใน Edit Plus สำหรับใครที่ใช้ Edit plus เป็น Editor ในการเขียนโค๊ดไม่ว่าจะเป็น html php c/c++…
- 13/11/2014 - 0 Comments"ถ้า server ตัวไหนที่อนุญาติให้ login เข้าระบบ และไม่สนใจว่าล็อกอินสำเร็จหรือไม่…
ไม่มีความคิดเห็น:
แสดงความคิดเห็น