js數字格式化貨幣
① money_format — 將數字格式化成貨幣字元串
這是總結後的知識點,希望能幫到你,數據有點多!
money_format
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
money_format — 將數字格式化成貨幣字元串
說明
money_format ( string $format , float $number ) : string
money_format() 返回格式化好的 number 版本。 此函數包裝了 C 函數庫中的 strfmon(),不同之處是:此實現每次只能轉化一個數字。
參數
format
格式字元串由以下幾部分組成:
單個 % 字元
可選的標記(flags)
可選的欄位寬度
可選的,左側精度
可選的,右側精度
必選的,單個轉化字元
標記(Flags)
可選多個標記,分別是:
=f
字元:=,並緊跟一個字元(單位元組) f,用於數字填充。默認的填充字元是空格。
^
禁用分組字元(比如金額中的逗號。在本地區域設置 locale 中定義)。
+ or (
正負數字的格式。使用 +,將使用區域設置(locale)中相當於 + 和 - 的符號。 如果使用 (,負數將被圓括弧圍繞。不設置的話,默認為 +。
!
不輸出貨幣符號(比如 ¥)。
-
有這個符號的時候,將使欄位左對齊(填充到右邊),默認是相反的,是右對齊的(填充到左邊)。
② javascript對數字格式化、千位符、保留小數、四捨五入
/*
將數值四捨五入後格式化.
@param num 數值(Number或者String)
@param cent 要保留的小數位(Number)
@param isThousand 是否需要千分位 0:不需要,1:需要(數值類型);
@return 格式的字元串,如'1,234,567.45'
@type String
*/
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) //確保傳入的數值只為0或1
isThousand = 1;
sign = (num == (num = Math.abs(num)));//獲取符號(正/負數)
//Math.floor:返回小於等於其數值參數的最大整數
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);
}
③ js 數字、浮點數操作、格式化
浮點小數都是用除法進行存儲的,所以我會採用如下幾種方法
首先小數轉字元串,然後小數點前後的分別進行運算
例如2.345 + 3.456 = [(2+3) +"." +( 345+456)].join("")
這樣就能取得結果了
④ 求助:如何在JS中將一個金額格式化
function toThousands( num ) {
var v = num + '', arr = v.split( '.' );
return num == 0 && '0.00' || ( typeof ( num ) === 'number' || typeof ( num ) === 'string' ) && !isNaN( num - parseFloat( num ) )
&& ( arr[ 0 ].replace( /(\d)(?=(?:\d{3})+$)/g, '$1,' ) + '.' + ( arr.length === 1 && '00'
|| arr.length === 2 && ( ( parseFloat( '0.' + arr[ 1 ] ).toFixed( 2 ) ).toString().split( '.' )[ 1 ] ) ) ) || num;
}
此方法,可以保留兩位小數,不會出現科學計數法的尷尬!
⑤ javascript有沒有提供將數字格式化為貨幣形式
<script>
function outputMoney(number)
{
number=number.replace(/,/g,"");
if (number=="") return "";
if(number<0)
return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0);
else
return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
}
function outputDollars(number)
{
if (number.length<= 3)
return (number == '' ? '0' : number);
else
{
var mod = number.length%3;
var output = (mod == 0 ? '' : (number.substring(0,mod)));
for (i=0 ; i< Math.floor(number.length/3) ; i++)
{
if ((mod ==0) && (i ==0))
output+= number.substring(mod+3*i,mod+3*i+3);
else
output+= ',' + number.substring(mod+3*i,mod+3*i+3);
}
return (output);
}
}
function outputCents(amount)
{
amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
return (amount<10 ? '.0' + amount : '.' + amount);
}
</script>
補充:JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標准通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。

⑥ js 金額分格式轉換成元格式
可以通過縮放來進行分到元的轉換,同時使用正則對處理後的數字進行千分位格式化
num=num*0.01;//分到元
num+='';//轉成字元串
reg=num.indexOf('.') >-1 ?/(d{1,3})(?=(?:d{3})+.)/g:/(d{1,3})(?=(?:d{3})+$)/g;//確定使用有哪個正則
num=num.replace(reg, '$1,');//千分位格式化
經過上述4步,即可完成分到元的轉換,並且有千分位的格式化
⑦ 通過js控制金額的顯示格式###,##0.00
將金額切一下唄,除運算和模運算
比如1299,,預計格式為1,299
1299/1000=1
1299%1000=299
將這兩個拼裝
⑧ JS裡面貨幣類型怎麼弄 比如我現在有200000 這個數字怎麼樣轉化為貨幣類型200.000.00
function FormatMoney(money) {
if (/[^0-9\.]/.test(money)) return '0.00';
money = money.replace(/^(\d*)$/, "$1.");
money = (money + "00").replace(/(\d*\.\d\d)\d*/, "$1");
money = money.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(money)) {
money = money.replace(re, "$1,$2");
}
money = money.replace(/,(\d\d)$/, ".$1");
return '' + money.replace(/^\./, "0.");
}
⑨ JS,求實現,金額自動格式化,保留兩位小數。
<!DOCTYPEhtml>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<title>RunJS演示代碼</title>
<script>
functionformat(num)
{
return"¥"+num.replace(/[^d]/g,"")
.replace(/(d{1,3})(?=(d{3})+(.d*)?$)/g,'$1,');
}
</script>
</head>
<body>
<inputonkeyup="this.value=format(this.value)"placeholder="請輸入金額"/>
</body>
</html>
⑩ JavaScript 數字格式化怎麼寫
給你寫個js函數直接調用可以格式化數字的【以下是代碼部分】<script>
/**
* 格式化數字顯示方式
* 用法
* formatNumber(12345.999,'#,##0.00');
* formatNumber(12345.999,'#,##0.##');
* formatNumber(123,'000000');
* @param num
* @param pattern
*/
function formatNumber(num,pattern){
var strarr = num?num.toString().split('.'):['0'];
var fmtarr = pattern?pattern.split('.'):[''];
var retstr='';
// 整數部分
var str = strarr[0];
var fmt = fmtarr[0];
var i = str.length-1;
var comma = false;
for(var f=fmt.length-1;f>=0;f--){
switch(fmt.substr(f,1)){
case '#':
if(i>=0 ) retstr = str.substr(i--,1) + retstr;
break;
case '0':
if(i>=0) retstr = str.substr(i--,1) + retstr;
else retstr = '0' + retstr;
break;
case ',':
comma = true;
retstr=','+retstr;
break;
}
}
if(i>=0){
if(comma){
var l = str.length;
for(;i>=0;i--){
retstr = str.substr(i,1) + retstr;
if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;
}
}
else retstr = str.substr(0,i+1) + retstr;
}
retstr = retstr+'.';
// 處理小數部分
str=strarr.length>1?strarr[1]:'';
fmt=fmtarr.length>1?fmtarr[1]:'';
i=0;
for(var f=0;f<fmt.length;f++){
switch(fmt.substr(f,1)){
case '#':
if(i<str.length) retstr+=str.substr(i++,1);
break;
case '0':
if(i<str.length) retstr+= str.substr(i++,1);
else retstr+='0';
break;
}
}
return retstr.replace(/^,+/,'').replace(/\.$/,'');
}
alert(formatNumber(12345.999,'#,##0.00'));
</script>
