js能夠四捨五入且能夠保留指定小數位數和千分位的程式碼

admin發表於2017-03-20

對於數字的操作是實際應用中非常的頻繁,例如普通意義上的數值運算還有對金錢數額的格式化,下面分享一段程式碼例項程式碼,它能夠對數字進行四捨五入,並且還能夠保留指定小數位數,如果是金錢數額的話,還可以保留千分位。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function formatNumber(num,cent,isThousand)
{ 
  num = num.toString().replace(/\$|\,/g,''); 
  if(isNaN(num))
   num = "0"; 
  if(isNaN(cent))
   cent = 0; 
  cent = parseInt(cent); 
  cent = Math.abs(cent);
  if(isNaN(isThousand))
    isThousand = 0; 
  isThousand = parseInt(isThousand); 
  if(isThousand < 0) 
    isThousand = 0; 
  if(isThousand >=1)
    isThousand = 1; 
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*Math.pow(10,cent)+0.50000000001);
  cents = num%Math.pow(10,cent); 
  num = Math.floor(num/Math.pow(10,cent)).toString();
  cents = cents.toString();
  while(cents.length<cent){
    cents = "0" + cents; 
  } 
  if(isThousand == 0)
    return (((sign)?'':'-') + num + '.' + cents); 
 
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) 
    num = num.substring(0,num.length-(4*i+3))+','+ 
  num.substring(num.length-(4*i+3)); 
  return (((sign)?'':'-') + num + '.' + cents); 
}

引數說明:

1.num:將要進行運算元字或者數字字串。

2.cent:將要保留的小數位數,可以是數字或者數字字串。

3.isThousand:用語表示是否使用千分位格式,如果是0則不使用,其他整數則使用。

相關文章