มือใหม่ลองจับจาวา สงสัยเรื่องการคำนวนเลขในสคริปต์ครับ


มือใหม่ลองจับจาวา สงสัยเรื่องการคำนวนเลขในสคริปต์ครับ


พอดีว่าพอจะใช้ html เป็นนิดหน่อยเลยลองศึกษาพ่วงไปทางจาวาสคริปต์ด้วยเลยลองคลำๆเขียนการใส่ค่าบวกลบคูณหารเลขดูได้มาประมาณนี้



ค่าตัวแปร num1 :
ค่าตัวแปร num2 :

แสดงผล


ปุ่มกด ชื่อ ทดสอบผล ฟังชั่น whatPlus

function whatPlus() {
num1=document.getElementById("num1").value;
num2=document.getElementById("num2").value;
x = parseInt(num1);
y = parseInt(num2);
w = 95;
v = 100;
u = 0.95;
z = ((x - y)*w/v);
document.getElementById("trace").innerHTML = z;
}




คำถามคืองงวิธีคำนวนว่าทำไมได้ไม่เท่ากันครับ คือผมลองใส่ค่าไปที่ num1 = 14000 และ num2 = 9876
ตอนแรกผมใส่ไปตรงตัวอักษรสีแดงว่า z = (x-y)*u แต่ได้ผลเท่ากับ 3917.7999999999997 ทั้งๆที่น่าจะเป็น 3917.8
แต่พอแทนที่ด้วย ((x-y)*w/v) กลับได้ผลถูกต้อง คือ 3917.8 ทั้งที่ 0.95 ก็เท่ากับ 95 ส่วน 100

ที่ตั้งคำถามนี้คือมีคนพูดว่ากระบวนการ คูณ นั้นทำได้เร็วกว่า หาร ในการประมวลผล เลยอยากรู้ข้อผิดพลาดอ่ะครับ(ยังไม่ได้ลองกับเครื่องอื่น แต่เครื่องนี้เป็น)

โพสเมื่อ : 2013-02-06 10:59:39 | 6 ปี , 2 เดือน , 5 วัน , 11 ชั่วโมง ผ่านมา
อาจเป็นเพราะว่า
(u = 0.95) มีค่าเท่ากับ 0.95
แต่
(95/100) มีค้าเท่ากับ 0.950000???

เดาเอาน่ะไม่รู้เหมือนกัน

ลำดับ : 1 | ตอบเมื่อ : 2013-02-07 23:10:46 | 6 ปี , 2 เดือน , 3 วัน , 23 ชั่วโมง ผ่านมา
เข้าสู่ระบบ
คงสถานะการเข้าระบบ