Ⅰ js怎麼把數字金額轉換成中文大寫金額
http://link.fobshanghai.com/rmb.htm,參考網址。
<script>
function convertCurrency(currencyDigits) {
// Constants:
var MAXIMUM_NUMBER = 99999999999.99;
// Predefine the radix characters and currency symbols for output:
var CN_ZERO = "零";
var CN_ONE = "壹";
var CN_TWO = "貳";
var CN_THREE = "叄";
var CN_FOUR = "肆";
var CN_FIVE = "伍";
var CN_SIX = "陸";
var CN_SEVEN = "柒";
var CN_EIGHT = "捌";
var CN_NINE = "玖";
var CN_TEN = "拾";
var CN_HUNDRED = "佰";
var CN_THOUSAND = "仟";
var CN_TEN_THOUSAND = "萬";
var CN_HUNDRED_MILLION = "億";
var CN_SYMBOL = "人民幣";
var CN_DOLLAR = "元";
var CN_TEN_CENT = "角";
var CN_CENT = "分";
var CN_INTEGER = "整";
// Variables:
var integral; // Represent integral part of digit number.
var decimal; // Represent decimal part of digit number.
var outputCharacters; // The output result.
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, molus;
// Validate input string:
currencyDigits = currencyDigits.toString();
if (currencyDigits == "") {
alert("請輸入小寫金額!");
return "";
}
if (currencyDigits.match(/[^,.\d]/) != null) {
alert("小寫金額含有無效字元!");
return "";
}
if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {
alert("小寫金額的格式不正確!");
return "";
}
// Normalize the format of input digits:
currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.
currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.
// Assert the number is not greater than the maximum number.
if (Number(currencyDigits) > MAXIMUM_NUMBER) {
alert("金額過大,應小於1000億元!");
return "";
}
// Process the coversion from currency digits to characters:
// Separate integral and decimal parts before processing coversion:
parts = currencyDigits.split(".");
if (parts.length > 1) {
integral = parts[0];
decimal = parts[1];
// Cut down rendant decimal digits that are after the second.
decimal = decimal.substr(0, 2);
}
else {
integral = parts[0];
decimal = "";
}
// Prepare the characters corresponding to the digits:
digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals = new Array(CN_TEN_CENT, CN_CENT);
// Start processing:
outputCharacters = "";
// Process integral part if it is larger than 0:
if (Number(integral) > 0) {
zeroCount = 0;
for (i = 0; i < integral.length; i++) {
p = integral.length - i - 1;
d = integral.substr(i, 1);
quotient = p / 4;
molus = p % 4;
if (d == "0") {
zeroCount++;
}
else {
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[Number(d)] + radices[molus];
}
if (molus == 0 && zeroCount < 4) {
outputCharacters += bigRadices[quotient];
zeroCount = 0;
}
}
outputCharacters += CN_DOLLAR;
}
// Process decimal part if there is:
if (decimal != "") {
for (i = 0; i < decimal.length; i++) {
d = decimal.substr(i, 1);
if (d != "0") {
outputCharacters += digits[Number(d)] + decimals[i];
}
}
}
// Confirm and return the final output string:
if (outputCharacters == "") {
outputCharacters = CN_ZERO + CN_DOLLAR;
}
if (decimal == "") {
outputCharacters += CN_INTEGER;
}
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
</script>
Ⅱ 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.");
}
Ⅲ 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)中相當於 + 和 - 的符號。 如果使用 (,負數將被圓括弧圍繞。不設置的話,默認為 +。
!
不輸出貨幣符號(比如 ¥)。
-
有這個符號的時候,將使欄位左對齊(填充到右邊),默認是相反的,是右對齊的(填充到左邊)。
Ⅳ 【VUE】js將number數字轉換為金額格式,類似於10000=10,000.00
比如請求數據返回金額為10000,然後我們給做個金額格式分段;
1、我們首先模擬個數據~vue:data( ){ reutrn:{ num:10000 } } 原生js:var num=10000;
2、在項目中創建一個.js文件寫入js方法,如下;
3、js使用可以直接寫在方法外
4、vue可以將.js文件引入main文件,或者在本頁面引入
5、寫入要轉換的變數值
Ⅳ Numeral.js
Numeral.js是一款用於格式化和操作數字的JavaScript庫。
npm install numeral
在需要用到的地方聲明即可
var numeral = require('numeral');
將各種其他格式轉化為數字
語法示例:
Input為不同的格式,value為轉化的數字
數字可以格式化成貨幣、百分比、時間,甚至是帶有小數點、千分位和告鄭縮寫。
語法示例:
設置默認格式,以便可以使純友鬧用不帶字元串的.format()。默認格式為做罩「0,0」
Ⅵ 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】金錢格式化(每三位逗號分隔)的方法
我們在日常開發中後台返回的金錢常常只是一個數字,比如12345.67,這時需要做一下轉化,把它變成12,345.67這樣的金錢格式,我想到的方法如下:
整體思路就是先拿到數據後,先把它當成字元串處理,通過小數點,分開整數和小數部分,然後處理整數部分,如果整數部分小於等於3位,直接用就可以啦,如果大於3位,那麼就把這個整數最後3位先存起來且前面加上逗號,然後割掉這個整數的這3位,繼續重復這個判斷,每次截取的後三位都拼到上一次截取結果的前面,直到整數部分小於等於三位了,就可以和存儲的結果拼在一起,再拼上小數部分就可以啦。
希望大家能有更好的方法~
Ⅷ 求助:如何在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;
}
此方法,可以保留兩位小數,不會出現科學計數法的尷尬!
Ⅸ 求一個JS正則表達式用於格式化英文中的金額形式。如:25663333444,格式化後為:25,663,333,444
var s = '12345237987584564656,000.00';
var d=s.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
Ⅹ javascript 中對money類型的數據操作
這是一個很常用的 js 技術,因為覺得比較典型,可能很多新手都會遇到此問題,所以整迅哪州理了一下,以備新手查閱。
1、round 方法
作用:返回與給出的數值表達式最接近的整數。
語法:Math.round(number) ,必選項 number 參數是要舍入到最接近整數的值。
說明:如果 number 的小數部分大緩賀於等於 0.5,返回值是大於 number 的最小整數。否則,round 返回小於等於 number 的最大整數。
2、在 Javascript 1.5 (IE5.5+,NS6+ 以上版本支持)中,新增了2個專門用於貨幣畝蔽流通的函數,Number.toFixed(x) 和 Number.toPrecision(x)。
Number.toFixed(x) 是將指定數字截取小數點後 x 位, Number.toPrecision(x) 是將整個數字截取指定(x)長度。注意,一個是計算小數點後的長度,一個是計算整個數字的長度 。
例如:
<script type="text/javascript">
var aa = 2.3362;
document.write(aa.toFixed(1)); // 2.3
document.write(aa.toFixed(2)); // 2.34
document.write(aa.toPrecision(2)); // 2.3
document.write(aa.toPrecision(3)); // 2.34
document.write(Math.round(aa * 10) / 10); // 2.3
document.write(Math.round(aa * 100) / 100); // 2.34
</script>
由於是新增函數,所以要考慮瀏覽器支持問題。