29/7/57

วิธีแก้ไขปัญหาทศนิยมไม่ปัดเศษส่วน function tofixed()

วิธีแก้ไขปัญหาทศนิยม function tofixed() ใน javascript เวลาเราใช้ function tofixed() จะไม่ทำการปัดเศษส่วนให้ตรงตามหลักการคือ 1-4 ต้องปัดลง 5-9 ต้องปัดขึ้น วันนี้ลองมาแก้ดู บางที function นี้ผมก็ยัง งงๆอยู่ว่าแท้จริงแล้วมันผิดที่ตรงไหน ผมเคยไปรับงานมาทีนึงเขาบอกว่าผิดโดยที่ผมใช้ฟังชั่นนี้ tofixed()





ลองดูวิธีการแก้ไขโดยการ copy code ชุดนี้ไป run ดูครับ

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</meta></head>
<script language="javascript">
function ToFixed(num,dec){
  if(typeof(pre) != 'undefined' && pre != null){ var decimals=dec;  } else{var decimals=2;}

  num *= Math.pow(10,decimals);
  num = (Math.round(num,decimals) + (((num - Math.round(num,decimals))>=0.4)?1:0)) / Math.pow(10,decimals);
 return num.toFixed(decimals);
}

var a = 97.475; // a = 97.475
a = ToFixed(a,2);
    alert(a);// ผลลัพธ์ที่ได้จะเป็น 97.48

var num = 97.475;
var n = num.toFixed(2);
alert(n); // ผลลัพธ์ที่ได้จะเป็น 97.47

</script>
<body>
</body>
</html>

ผมจำไม่ได้แล้วนะครับว่า copy code ตัวนี้มากจากทีใด ถ้าเป็นของใครบอกผมได้ครับผมจะให้เครดิตไว้