Page 1 of 1

ผลลัพท์การคูณ เเต่ละที่ทำไมไม่ตรงกัน

Posted: 09/04/2020 3:11 pm
by thatsawan

Code: Select all

a = 0.000833*6.0  
ผลลัพท์จะได้ 0.004998
เเต่พออยู่ในตัวแปลที่รับมา จะคำนวนไม่ตรง
2020-04-09_14-57-49.gif


ลองไปเช็คกับ เครื่องคิดเลข ก็ได้ไม่เท่ากัน
image_2020_04_09T08_02_23_199Z.png
image_2020_04_09T08_02_23_199Z.png (21.65 KiB) Viewed 262 times
image_2020_04_09T08_03_00_211Z.png
image_2020_04_09T08_03_00_211Z.png (38.62 KiB) Viewed 262 times

Re: ผลลัพท์การคูณ เเต่ละที่ทำไมไม่ตรงกัน

Posted: 09/04/2020 3:21 pm
by mindphp
cal ตัวบนเอามาจากไหน

การคูณ หาร ในโปรแกรมมิ่ง ควรกำหนด datatype ให้ถูกต้องตามชนิดข้อมูล (กำหนดให้ตรงกับฐานข้อมูลด้วย)
เพราะเวลา fetch ออกมาจากฐานข้อมูล lib บางตัวมันอาจแปลงค่าผิด และทำให้ Python ที่เราใช้มันเข้าใจผิด

Re: ผลลัพท์การคูณ เเต่ละที่ทำไมไม่ตรงกัน

Posted: 09/04/2020 3:39 pm
by thatsawan
เจอปัญหาเเล้ว
ผิดที่ 883 จะต้องเป้น 833

ขอบคุณค่ะ

Re: ผลลัพท์การคูณ เเต่ละที่ทำไมไม่ตรงกัน

Posted: 09/04/2020 4:03 pm
by thatsawan
เจอเคส เพิ่มเติม
คำนวนมือจะได้
(0.000883*6)*345779.70/(0.000883*6)+(0.000883*25)+(0.000660*60) = 345779.761675

พอเราเอา ชุดนี้มารวมกันก่อน
(0.000883*6)+(0.000883*25)+(0.000660*60) = 0.066973

เเล้วมาเเบ่งรวมกันที่หลัง
(0.000883*6)*345779.70/0.066973 = 27,353.423777

Re: ผลลัพท์การคูณ เเต่ละที่ทำไมไม่ตรงกัน

Posted: 09/04/2020 4:11 pm
by thatsawan
thatsawan wrote: 09/04/2020 4:03 pm เจอเคส เพิ่มเติม
คำนวนมือจะได้
(0.000883*6)*345779.70/(0.000883*6)+(0.000883*25)+(0.000660*60) = 345779.761675

พอเราเอา ชุดนี้มารวมกันก่อน
(0.000883*6)+(0.000883*25)+(0.000660*60) = 0.066973

เเล้วมาเเบ่งรวมกันที่หลัง
(0.000883*6)*345779.70/0.066973 = 27,353.423777
จริง ๆ ใส่วงเล็บครอบ จะเท่ากับ python คำนวน
((0.000883*6)*345779.70)/((0.000883*6)+(0.000883*25)+(0.000660*60)) ผลที่ได้ 27,353.423777