กระทู้เก่าบอร์ด อ.Yeadram
1,883 19
URL.หัวข้อ /
URL
ฟิลด์ จำนวนสินค้า ต้องใช้ฟังก์ชั่น ceiling แต่ไม่ม
โดยฟิลด์ จำนวนสินค้า ได้จาก ฟิลด์คำนวณ
ซึ่งถ้าฟิลด์คำนวณ เป็นเลขทศนิยม ก็จะปัดขึ้นเสมอ
ดังนี้
คำนวณ จำนวนสินค้า
4.1 5
4.6 5
4 4
ดังนั้นควรทำอย่างไร
ซึ่งถ้าฟิลด์คำนวณ เป็นเลขทศนิยม ก็จะปัดขึ้นเสมอ
ดังนี้
คำนวณ จำนวนสินค้า
4.1 5
4.6 5
4 4
ดังนั้นควรทำอย่างไร
19 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R21491
ใช้ฟังก์ชั่น -int(-x) ครับ
2 @R21492
ขอบคุณมากครับ มันใช่ได้ครับ โดยฟิลด์คำนวณผม ได้จาก ฟิลด์A คูณ ฟิลด์B ครับ โดยฟิลด์ A เป็นค่าคงที่
ดังนี้
ฟิลด์A ฟิลด์ B ฟิลด์คำนวณ ฟิลด์จำนวนสินค้า
14% 100 14 15
5% 100 5 5
แต่ปัญหามันอยู่ตรงที่ 14% ครับ จริงๆแล้ว ฟิลด์จำนวนสินค้า ต้องได้14ใช่มั้ยครับ
แต่ทำไมมันได้ 15 ละครับ
ปล. ที่5% ก็เป็น5ปกติครับ
ดังนี้
ฟิลด์A ฟิลด์ B ฟิลด์คำนวณ ฟิลด์จำนวนสินค้า
14% 100 14 15
5% 100 5 5
แต่ปัญหามันอยู่ตรงที่ 14% ครับ จริงๆแล้ว ฟิลด์จำนวนสินค้า ต้องได้14ใช่มั้ยครับ
แต่ทำไมมันได้ 15 ละครับ
ปล. ที่5% ก็เป็น5ปกติครับ
3 @R21493
เปลี่ยนใหม่เป็น -int(-cdec(x)) ครับ
4 @R21494
จำนวนสินค้า: -Int(-cdec([คำนวณ]))
ไม่ได้อ่ะครับ
ไม่ได้อ่ะครับ
5 @R21495
ผมลอง -int(-cdec(100 * 0.14)) ก็ได้ 14 นะครับ สูตรคำนวนของคุณเป็นยังไง เอามาให้ดูเต็มๆหน่อยครับ
6 @R21497
หน้าตา
โดย ฟิลด์AและฺB มาจากTable1
A B การคำนวณ: ([A]*[B]) จำนวนสินค้า:-Int-(cdec([การคำนวณ])
14% 100 14
5% 100 3.5
โดยฟิลด์จำนวนสินค้าพอใส่สูตร -Int-(cdec([การคำนวณ])
มันก็ขึ้นข้อความว่า นิพจน์ที่คุณใส่นั้นมีฟังก์ชั่นที่มีจำนวนของอาร์กิวเมนต์ไม่ถูกต้อง ดังนั้นเอาวงเล็บหลังสุดออก -Int-(cdec([การคำนวณ]
และขึ้นข้อความว่า นิพจน์ที่คุณใส่นั้นไม่มีวงเล็บปิด
ดังนั้นใส่วงเล็บเข้าไปใหม่ -Int-(cdec([การคำนวณ])
มันก็ขึ้นเตือนแบบด้านบนอีก วนไปอย่างนี้ละครับ
ดังนั้นผมควรแก้อย่างไรดีครับ
โดย ฟิลด์AและฺB มาจากTable1
A B การคำนวณ: ([A]*[B]) จำนวนสินค้า:-Int-(cdec([การคำนวณ])
14% 100 14
5% 100 3.5
โดยฟิลด์จำนวนสินค้าพอใส่สูตร -Int-(cdec([การคำนวณ])
มันก็ขึ้นข้อความว่า นิพจน์ที่คุณใส่นั้นมีฟังก์ชั่นที่มีจำนวนของอาร์กิวเมนต์ไม่ถูกต้อง ดังนั้นเอาวงเล็บหลังสุดออก -Int-(cdec([การคำนวณ]
และขึ้นข้อความว่า นิพจน์ที่คุณใส่นั้นไม่มีวงเล็บปิด
ดังนั้นใส่วงเล็บเข้าไปใหม่ -Int-(cdec([การคำนวณ])
มันก็ขึ้นเตือนแบบด้านบนอีก วนไปอย่างนี้ละครับ
ดังนั้นผมควรแก้อย่างไรดีครับ
7 @R21499
เพิ่มเติมครับ
โดยฟิลด์ จำนวนสินค้า ได้จากฟิลด์การคำนวณครับ
ดังนี้
คำนวณ จำนวนสินค้า
14 14
14.2 15
14.9 15
ดังนั้นจำนวนสินค้า ต้องใช้ฟังก์ชั่น celing แต่access ไม่มี
แต่คุณเปลี่ยนให้ เปลี่ยนใหม่เป็น -int(-cdec(x))
โดยฟิลด์ จำนวนสินค้า ได้จากฟิลด์การคำนวณครับ
ดังนี้
คำนวณ จำนวนสินค้า
14 14
14.2 15
14.9 15
ดังนั้นจำนวนสินค้า ต้องใช้ฟังก์ชั่น celing แต่access ไม่มี
แต่คุณเปลี่ยนให้ เปลี่ยนใหม่เป็น -int(-cdec(x))
8 @R21500
เพิ่มเติมครับ
โดยฟิลด์ จำนวนสินค้า ได้จากฟิลด์การคำนวณครับ
ดังนี้
คำนวณ จำนวนสินค้า
14 14
14.2 15
14.9 15
ดังนั้นจำนวนสินค้า ต้องใช้ฟังก์ชั่น celing แต่access ไม่มี
แต่คุณเปลี่ยนให้ เปลี่ยนใหม่เป็น -int(-cdec(x))
โดยฟิลด์ จำนวนสินค้า ได้จากฟิลด์การคำนวณครับ
ดังนี้
คำนวณ จำนวนสินค้า
14 14
14.2 15
14.9 15
ดังนั้นจำนวนสินค้า ต้องใช้ฟังก์ชั่น celing แต่access ไม่มี
แต่คุณเปลี่ยนให้ เปลี่ยนใหม่เป็น -int(-cdec(x))
9 @R21501
ปิดท้ายด้วยวงเล็บ 2 ตัวครับ
10 @R21504
จำนวนสินค้า: -Int(Cdec([การคำนวณ]))
มันก็ยังขึ้นข้อความว่า นิพจน์ที่คุณใส่นั้นมีฟังก์ชั่นที่มีจำนวนของอาร์กิวเมนต์ไม่ถูกต้อง
อยู่ดีครับ
มันก็ยังขึ้นข้อความว่า นิพจน์ที่คุณใส่นั้นมีฟังก์ชั่นที่มีจำนวนของอาร์กิวเมนต์ไม่ถูกต้อง
อยู่ดีครับ
11 @R21505
สูตร -int(-cdec(....)) คุณใส่ไว้ในไหน ? ใน control Source ของเท็กซ์บ็อกซ์ หรือเป็น field ที่เป็น expression ในคิวรี่ หรือที่ไหน แล้วเขียนยังไง แสดงให้เห็นทุกตัวอักษรเลยครับ
12 @R21507
field ที่เป็น expression ในคิวรี่ ครับ
พอใส่สูตรนี้ จำนวนสินค้า: -Int(-Cdec([การคำนวณ]))
ก็ขึ้นดังภาพครับ
พอใส่สูตรนี้ จำนวนสินค้า: -Int(-Cdec([การคำนวณ]))
ก็ขึ้นดังภาพครับ

13 @R21508
ต้องเชียน -Int(-Cdec([A] * [B])) ครับ
14 @R21509
แก้ไข ต้องเชียน -Int(-Cdec([เอ] x [บี])) ครับ (เปลี่ยน เอ,บี เป็นอักษรอังกฤษนะครับ มันไม่สามารถเขียนตรงๆในเวปบอร์ดนี้เพราะไปซ้ำกับ tag code ของรูปแบบอักษร)
15 @R21511
ก็ยังขึ้นอยู่ครับ ดังภาพ ไม่รู้เป็นเพราะอะไร

16 @R21512
ไปลองหาดูว่าเกิดอะไรขึ้น ถึงได้รู้ว่า CDec() ไม่สามารถใช้ในคิวรี่ งั้นเปลี่ยนสูตรเป็น Int(0.9999+([a]*[b])) แทนครับ (ไม่ต้องมีเครื่องหมายลบแล้ว) ถ้าทศนิยมของผลคำนวน [a] * [b] สูงสุดเป็น 4 หลัก ก็ให้ใช้ 0.9999 แต่ถ้าเป็น 5 หลัก ก็ใช้ 0.99999 ให้ลดเพิ่มจำนวนหลักของ 0.9... ตามหลักการนี้ครับ
17 @R21513
แก้ไขใหม่ :
ไปลองหาดูว่าเกิดอะไรขึ้น ถึงได้รู้ว่า CDec() ไม่สามารถใช้ในคิวรี่ งั้นเปลี่ยนสูตรเป็น Int(0.9999+([เอ]*[บี])) แทนครับ (ไม่ต้องมีเครื่องหมายลบแล้ว) ถ้าทศนิยมของผลคำนวน [a] * สูงสุดเป็น 4 หลัก ก็ให้ใช้ 0.9999 แต่ถ้าเป็น 5 หลัก ก็ใช้ 0.99999 ให้ลดเพิ่มจำนวนหลักของ 0.9... ตามหลักการนี้ครับ
ไปลองหาดูว่าเกิดอะไรขึ้น ถึงได้รู้ว่า CDec() ไม่สามารถใช้ในคิวรี่ งั้นเปลี่ยนสูตรเป็น Int(0.9999+([เอ]*[บี])) แทนครับ (ไม่ต้องมีเครื่องหมายลบแล้ว) ถ้าทศนิยมของผลคำนวน [a] * สูงสุดเป็น 4 หลัก ก็ให้ใช้ 0.9999 แต่ถ้าเป็น 5 หลัก ก็ใช้ 0.99999 ให้ลดเพิ่มจำนวนหลักของ 0.9... ตามหลักการนี้ครับ
18 @R21514
ไม่แน่ใจนะครับ แต่ถ้าใช้ในคิวรี่รู้สึกว่าผมเคยใช้เป็น -int(-val([x])) ไงลองทดสอบดูครับ
19 @R21515
ขอบคุณมากเลยครับที่ช่วย
ใช้ทั้งของคุณสันติสุขและคุณTTTเลยครับ
ใช้ทั้งของคุณสันติสุขและคุณTTTเลยครับ
Time: 0.3775s