นี่เป็นสิ่งที่แปลกมากซึ่งได้รับการทดสอบในวันนี้ ParseInt (1.13*100) ค่าส่งคืนจริงคือ 112 เพียงดูที่รหัส
การคัดลอกรหัสมีดังนี้:
<head>
<script type = "text/javascript">
ฟังก์ชั่นทดสอบ () {
var thisvalue = 0;
thisvalue = yuantofen ($ ("#inp"). val ());
การแจ้งเตือน (ค่านี้);
-
/* หยวนถึงจุด*/
ฟังก์ชั่น yuantofen (หยวน) {
ส่งคืน parseint (หยวน*100,10); // โซลูชัน: เปลี่ยนการส่งคืนที่นี่เป็น: parseint (หยวน*1,000,10)/10;
-
</script>
</head>
<body>
<div>
<input type = "text" id = "inp" name = "pl" value = "1.14"/> <!-ข้อผิดพลาดนี้จะปรากฏขึ้นเฉพาะเมื่อค่าอินพุตคือ: 1.13, 1.14, 1.15, 1.16 และไม่พบข้อบกพร่องในข้อมูลอื่น->
<อินพุต type = "button" name = "ok" value = "ยืนยัน" onclick = "test ();"/>
</div>
</body>
</html>
เมื่อดำเนินการรหัสด้านบนคุณจะพบว่าเมื่อคุณป้อนหมายเลขจาก 1.13 ถึง 1.16 ตัวอย่างเช่น 1.13 จะถูกป้อน แต่ค่าของการแจ้งเตือนคือ 1.12 ในทำนองเดียวกันถ้าอินพุตคือ 1.16 การแจ้งเตือนจะส่งออก 1.15
อย่างไรก็ตามสิ่งนี้จะไม่เกิดขึ้นเมื่อป้อน 2.13, 3.13 และ 0.13
ข้อผิดพลาดนี้มีความสำคัญอย่างยิ่งสำหรับธุรกิจที่ทำบัญชีมากที่สุด
ตัวอย่างเช่น: หากคุณต้องการส่งเงินให้กับใครบางคนหน่วยการโอนเงินคือ (พันล้านหยวน) และคุณส่งเงิน 113 ล้านหยวน แต่ในที่สุดมันก็กลายเป็น 112 ล้านหยวน ฮ่า. แค่เรื่องตลก อย่างไรก็ตามขั้นตอนนั้นเข้มงวด ไม่ว่าจะเป็นร้อยละหรือร้อยละหนึ่งมันเป็นของใครก็ตามที่เป็นของใครและคุณจะต้องไม่ประมาท