|
 |
|
คำนวณเลขใน javascript ยังไงให้ได้เหมือนในเครื่องคิดเลข มีตัวอย่าง |
|
 |
|
|
 |
 |
|
ในภาษาการโปรแกรมทุกภาษา จะคำนวณการปัดเศษตามหลักการทางคณิตศาสตร์
97.18499999999999 -> 97.18 (2 ตำแหน่ง), 97.185 (3 ตำแหน่ง), 97.1850 (4 ตำแหน่ง) ตั้งแต่ตำแหน่งที่ 4 เป็นต้นไปจะได้ค่าเป็น 0
ผลลัพธ์ที่คุณต้องการไม่ใช่การปัดเศษทางคณิตศาสตร์
แต่เป็นเงื่อนไขแบบกำหนดเอง เช่นนั้น ต้องสร้างเงื่อนไขขึ้นมาเพื่อครอบคลุมความต้องการทั้งหมด
แล้วนำไป implement เองด้วย substr(), substring()
|
 |
 |
 |
 |
Date :
2020-06-25 15:38:12 |
By :
PhrayaDev |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หรืออีกวิธี ถ้าเงื่อนเขียนแน่นอนว่าต้องดูตำแหน่งที่เท่าไหร่เป็นสำคัญ ก็ใช้วิธีปัดเศษทางคณิตศาสตร์สองครั้ง
โดยครั้งแรกเป็นการปัดหน่วยที่เล็กที่สุด ของความแม่นยำที่ต้องการ
และครั้งที่สอง เป็นการปัดเศษให้ตัวเลขอยู่ในทศนิยม สองตำแหน่ง (หรือกี่ตำแหน่งของผลลัพธ์สุดท้ายที่ต้องการ)
เช่น ถ้ายกตัวอย่างเดิมมาจะได้
Code (JavaScript)
var price = 170.50;
var reduce = 0.57;
var rp = price * reduce;
// ครั้งที่ 1 ปัดแปดเอาตำแหน่ง 7, ครั้ง 2 ปัดตำแหน่ง 3 เอา 2
alert(rp + ' (' + parseFloat(rp.toFixed(7)).toFixed(2) + ')'); // 97.19
|
 |
 |
 |
 |
Date :
2020-06-25 15:56:44 |
By :
PhrayaDev |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
bignumber.js -> financial
decimal.js -> scientific
big.js
ตกลงได้ลองสักอันหรือยัง?
|
 |
 |
 |
 |
Date :
2020-06-25 16:48:34 |
By :
mr.v |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
CASIO ที่มี 5/4 ยังคำนวณได้ตรง
ถ้าบอกรุ่นไม่ได้ แสดงว่าซื้อตาม...
อธิบายให้คนใช้งานเข้าใจว่า เครื่องคิดเลขเพี้ยน (ประสิทธิภาพตามราคา)
ถ้ายังจะใช้อิงตามเครื่องคิดเลข ถอยรุ่นที่เป็น high precision
แต่หากยังไม่ยอมแพ้ที่จะอ้างอิงจากเครื่องคิดเลขรุ่นนี้ เครื่องนี้
ลองยกตัวอย่าง กรณีที่คำนวณไม่ตรงกัน มาซัก 5-10 กรณี
เผื่อจับ logic ของมันได้ครับ
|
 |
 |
 |
 |
Date :
2020-06-26 12:16:18 |
By :
PhrayaDev |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เครื่องคิดเลขรุ่นไหน
ถ้าไม่ใช้ เครื่องรุ่นใหม่ ในการคำนวณ มันจะคำนวณผลต่อครั้งเมื่อกด สัญลักษณ์ทางการคำนวณใดๆ
เมื่อปัดเศษ จาก 0.18499 แสดงผล 3 ตำแหน่งเป็น 0.185
มันจะใช้ 0.185 ในการคำนวณครั้งต่อไป เมื่อปัดเศษอีกครั้ง จากตาเห็นผลลัพธ์สุดท้าย ก็จะเป็น 0.19
เป็นการคำนวณแบบเฉพาะกิจ
แต่ในระบบคอมพิวเตอร์ มันไม่ได้ปัดเศษ รอจนผลลัพธ์สุดท้ายถีงปัดเศษ เช่นเดียวกับการใช้ function ในเครื่องคิดเลข รุ่นใหม่
ดังนั้น ถ้าจะให้เหมือนเครื่องคิดเลย ก็ต้องคำนวณ ที่ละครั้งและปัดเศษไปด้วย
|
 |
 |
 |
 |
Date :
2020-06-26 14:53:17 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|

|
Load balance : Server 04
|