format number 4 หลัก แบบที่ปัดเศษเมื่อทศนิยมหลักที่ 5 เท่ากับ 95
ฟังก์ชั่นนี้ปัดเศษตามข้อกำหนดของตลาดหลักทรัพย์ครับ คือปัดขึ้นเมื่อทดศนิยมหลักที่ 5 เกิน 0.000095 ให้ผลลัพท์เป็นทศนิยม 4 หลัก
ตัวอย่างการใช้งาน
<script type="text/javascript">
document.write( '0.009=' + format_number( 0.009 ) + '<br />' ); //0.009=0.0090
document.write( '0.0095=' + format_number( 0.0095 ) + '<br />' ); //0.0095=0.0095
document.write( '2489=' + format_number( 2489 ) + '<br />' ); //2489=2489.0000
document.write( '2489.25=' + format_number( 2489.25 ) + '<br />' ); //2489.25=2489.2500
document.write( '123.25689599223=' + format_number( 123.25689599223 ) + '<br />' ); //123.25689599223=123.2569
document.write( '123.0010941235478=' + format_number( 123.0010941235478 ) + '<br />' ); //123.0010941235478=123.0010
document.write( '123.0010951235478=' + format_number( 123.0010951235478 ) + '<br />' ); //123.0010951235478=123.0011
document.write( '123.0001951235478=' + format_number( 123.0001951235478 ) + '<br />' ); //123.0001951235478=123.0002
</script>
<script type="text/javascript">
function format_number( number )
{
if ( isNaN( number ) || number == '' )
{
return 0;
};
var snum = new String( number );
var sec = snum.split( '.' );
var whole = parseFloat( sec[0] );
var result = '';
if( sec.length > 1 ) //มีทศนิยม
{
var dec = new String( sec[1] ); //จำนวนหลังทศนิยม
dec1 = String( parseFloat( dec ) / Math.pow( 10 , ( dec.length - 4 ) ) ); //ตัดตัวเลข 4 หลัก
dec2 = String( Math.floor( parseFloat( dec1 ) ) / Math.pow( 10 , 4 ) ); //เฉพาะทศนิยมไม่เกิน 4 หลัก
if( dec1.indexOf( '.' ) == -1 ) //มีทศนิยมน้อยกว่า 4 หลัก
{
var d = dec2.split( '.' )[1];
}
else //ทศนิยมมากกว่า 4 หลัก ตรวจสอบหลักที่ 5 ว่าเกิน 94 หรือไม่ เพื่อปัดเศษ
{
var sec2 = dec1.split( '.' );
var dec3 = parseInt( sec2[1] / Math.pow( 10 , ( sec2[1].length - 2 ) ) ); //ตัดเอามาแค่ 2 หลัก
if ( dec3 > 94 ) //เกิน 94
{
if ( sec2[0].length == 4 ) //ไม่มี 0 นำหน้า
{
var d = parseInt( sec2[0] ) + 1;
}
else // มี 0 นำหน้า ทศนิยม เช่น .001
{
d = parseFloat( sec2[0] ) / 10000;
var d2 = String( d + .0001 );
var ds = d2.split( '.' );
d = ds[1];
};
}
else //ไม่เกิน 94
{
var d = dec2.split( '.' )[1];
};
};
//เติม 0 ให้ครบ 4 หลัก
for( i = d.length ; i < 4 ; i++ )
{
d = d + '0';
};
result = sec[0] + '.' + d;
}
else //ไม่มีทศนิยมมา เติมทศนิยม 4 หลัก .0000
{
var dot;
var dec = new String( whole );
//เติม จุด ทศนิยม
dec += '.';
dot = dec.indexOf( '.' );
//เติม 0 ให้ครบหลัก
while( dec.length <= dot + 4 )
{
dec += '0';
};
result = dec;
};
return result;
}
</script>
ตัวอย่างการใช้งาน
<script type="text/javascript">
document.write( '0.009=' + format_number( 0.009 ) + '<br />' ); //0.009=0.0090
document.write( '0.0095=' + format_number( 0.0095 ) + '<br />' ); //0.0095=0.0095
document.write( '2489=' + format_number( 2489 ) + '<br />' ); //2489=2489.0000
document.write( '2489.25=' + format_number( 2489.25 ) + '<br />' ); //2489.25=2489.2500
document.write( '123.25689599223=' + format_number( 123.25689599223 ) + '<br />' ); //123.25689599223=123.2569
document.write( '123.0010941235478=' + format_number( 123.0010941235478 ) + '<br />' ); //123.0010941235478=123.0010
document.write( '123.0010951235478=' + format_number( 123.0010951235478 ) + '<br />' ); //123.0010951235478=123.0011
document.write( '123.0001951235478=' + format_number( 123.0001951235478 ) + '<br />' ); //123.0001951235478=123.0002
</script>