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

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 23698
Joined: 31/03/2014 10:02 am
Contact:

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

Post 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 107 times
image_2020_04_09T08_03_00_211Z.png
image_2020_04_09T08_03_00_211Z.png (38.62 KiB) Viewed 107 times

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 24206
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

cal ตัวบนเอามาจากไหน

การคูณ หาร ในโปรแกรมมิ่ง ควรกำหนด datatype ให้ถูกต้องตามชนิดข้อมูล (กำหนดให้ตรงกับฐานข้อมูลด้วย)
เพราะเวลา fetch ออกมาจากฐานข้อมูล lib บางตัวมันอาจแปลงค่าผิด และทำให้ Python ที่เราใช้มันเข้าใจผิด
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 23698
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

เจอปัญหาเเล้ว
ผิดที่ 883 จะต้องเป้น 833

ขอบคุณค่ะ

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 23698
Joined: 31/03/2014 10:02 am
Contact:

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

Post 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

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 23698
Joined: 31/03/2014 10:02 am
Contact:

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

Post 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

Post Reply

Return to “Programming - C/C++ & java & Python”

Who is online

Users browsing this forum: Google [Bot] and 3 guests