การปัดเศษสตางค์ตามช่วงที่กำหนด
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 290   1
URL.หัวข้อ / URL
การปัดเศษสตางค์ตามช่วงที่กำหนด

มีคนถามไว้ที่
http://pantip.inet.co.th/tech/software/topic/SP667508.html

คิดการปัดเศษสตางค์ตามช่วงที่กำหนด
ถ้าต้องการใช้ VB ในการเขียนฟังค์ชั่นที่ให้ในการปัดเศษสตางค์ตามช่วงที่เรากำหนดจะต้องเขียนอย่างไร
โดยข้อมูลที่รับเข้ามาเป็น float เช่น 10.10 บาท โดยเงินจำนวน 10.10 บาทนั้นเราไม่สามารถที่จะจ่ายเป็นเงินสดได้ เราจึงต้องทำการปัดเศษสตางค์ โดยมีช่วงที่กำหนดดังนี้
0.01 - 0.12 ให้ปัดเป็น 0.00
0.13 - 0.37 ให้ปัดเป็น 0.25
0.38 - 0.62 ให้ปัดเป็น 0.50
0.63 - 0.87 ให้ปัดเป็น 0.75
0.88 - 0.00 ให้ปัดเป็น 1.0
จากตัวอย่างข้างต้น ตัวเลข 10.10 จะถูกปัดเป็น 10.00 บาท รบกวนเพื่อนๆ พี่ๆ ที่รู้ช่วยตอบหรือบอกแนวการคิดให้ด้วยนะคะ
ขอบคุณมากคะ

จากคุณ: หัดเขียน [20 เม.ย. 2544 - 14:07:26]

ผมเลยนำมาเขียนโค้ดตามตัวอย่างข้างล่าง
Function RoundStang(ByVal dblNumber As Double)
Dim intStang As Integer, lngBaht As Long
Dim rtnNumber As Double

If InStr(dblNumber, ".") = 0 Then
rtnNumber = dblNumber
Else
intStang = Mid(dblNumber, InStr(dblNumber, ".") + 1)
If dblNumber > 1 Then
lngBaht = Left(dblNumber, InStr(dblNumber, ".") - 1)
Else
lngBaht = 0
End If

Select Case intStang
Case Is <= 12
rtnNumber = lngBaht
Case Is <= 37
rtnNumber = lngBaht + (25 / 100)
Case Is <= 62
rtnNumber = lngBaht + (5 / 100)
Case Is <= 87
rtnNumber = lngBaht + (75 / 100)
Case Else
rtnNumber = lngBaht + 1
End Select

End If

RoundStang = Format(rtnNumber, "#,##0.00")

End Function

ช่วยแจ้ง bugs เข้ามาด้วยถ้าเจอครับ *** Edited by Supap Chaiya *** 4/9/2546 17:45:28

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00063
ใช้ Function Int() ช่วยดังนี้ =Int( dblNumber * 4 + 0.48 ) / 4
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1332s