`

JS 保留2位小数 数字金额转化为文字大写

 
阅读更多

//保留2位小数
function changeTwoDecimal(x) {
var f_x = parseFloat(x);
if (isNaN(f_x)){
alert('不是一个有效的数字!~');
return false;
}
var f_x = Math.round(x*100)/100;

return changeTwoDecimal_f(f_x);
};
function changeTwoDecimal_f(x) {
var f_x = parseFloat(x);
if (isNaN(f_x)) {
alert('不是一个有效的数字');
return false;
}
var f_x = Math.round(x*100)/100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2) {
s_x += '0';
}
return s_x;

} ;

//金额 转化为 文字

 

//金额转化为文字
function ChangeToBig(value)
{
var intFen,i;
var strArr,strCheck,strFen,strDW,strNum,strBig,strNow;
if (value == null) //数据非法时提示,并返回空串
{
strErr = "数据"+value+"非法!"
alert(strErr);
return "";
}
if(value==0)
return "零";
strCheck = value+".";
strArr = strCheck.split(".");
strCheck = strArr[0];
if(strCheck.length>12) //数据大于等于一万亿时提示无法处理
{
strErr = "数据"+value+"过大,无法处理!"
alert(strErr);
return "";
}
try
{
i = 0;
strBig = "";
intFen = value*100; //转换为以分为单位的数值
strFen = intFen.toString();
strArr = strFen.split(".");
strFen = strArr[0];
intFen = strFen.length; //获取长度
strArr = strFen.split("");//将各个数值分解到数组内
while(intFen!=0) //分解并转换
{
i = i+1;
switch(i) //选择单位
{
case 1:strDW = "分";break;
case 2:strDW = "角";break;
case 3:strDW = "元";break;
case 4:strDW = "拾";break;
case 5:strDW = "佰";break;
case 6:strDW = "仟";break;
case 7:strDW = "万";break;
case 8:strDW = "拾";break;
case 9:strDW = "佰";break;
case 10:strDW = "仟";break;
case 11:strDW = "亿";break;
case 12:strDW = "拾";break;
case 13:strDW = "佰";break;
case 14:strDW = "仟";break;
}
switch (strArr[intFen-1]) //选择数字
{
case "1":strNum = "壹";break;
case "2":strNum = "贰";break;
case "3":strNum = "叁";break;
case "4":strNum = "肆";break;
case "5":strNum = "伍";break;
case "6":strNum = "陆";break;
case "7":strNum = "柒";break;
case "8":strNum = "捌";break;
case "9":strNum = "玖";break;
case "0":strNum = "零";break;
}
//处理特殊情况
strNow = strBig.split("");
//分为零时的情况
if((i==1)&&(strArr[intFen-1]=="0"))
strBig = "整";
//角为零时的情况
else if((i==2)&&(strArr[intFen-1]=="0"))
{ //角分同时为零时的情况
if(strBig!="整")
strBig = "零"+strBig;
}
//元为零的情况
else if((i==3)&&(strArr[intFen-1]=="0"))
strBig = "元"+strBig;
//拾-仟中一位为零且其前一位(元以上)不为零的情况时补零
else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元"))
strBig = "零"+strBig;
//拾-仟中一位为零且其前一位(元以上)也为零的情况时跨??
else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//拾-仟中一位为零且其前一位是元且为零的情况时跨过
else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元"))
{}
//当万为零时必须补上万字
else if((i==7)&&(strArr[intFen-1]=="0"))
strBig ="万"+strBig;
//拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零
else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="万"))
strBig = "零"+strBig;
//拾?颍蛑幸晃晃闱移淝耙晃唬ㄍ蛞陨希┮参愕那榭鍪笨绻?
else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="万"))
{}
//拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过
else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//万位为零且存在仟位和十万以上时,在万仟间补零
else if((i<11)&&(i>8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="万")&&(strNow[2]=="仟"))
strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length);
//单独处理亿位
else if(i==11)
{
//亿位为零且万全为零存在仟位时,去掉万补为零
if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]=="仟"))
strBig ="亿"+"零"+strBig.substring(1,strBig.length);
//亿位为零且万全为零不存在仟位时,去掉万
else if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]!="仟"))
strBig ="亿"+strBig.substring(1,strBig.length);
//亿位不为零且万全为零存在仟位时,去掉万补为零
else if((strNow[0]=="万")&&(strNow[2]=="仟"))
strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length);
//亿位不为零且万全为零不存在仟位时,去掉万
else if((strNow[0]=="万")&&(strNow[2]!="仟"))
strBig = strNum+strDW+strBig.substring(1,strBig.length);
//其他正常情况
else
strBig = strNum+strDW+strBig;
}
//拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零
else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="亿"))
strBig = "零"+strBig;
//拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过
else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="亿"))
{}
//拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过
else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//亿位为零且不存在仟万位和十亿以上时去掉上次写入的??
else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]!="仟"))

strBig = strNum+strDW+strBig.substring(1,strBig.length);

//亿位为零且存在仟万位和十亿以上时,在亿仟万间补零

else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]=="仟"))

strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length);

else

strBig = strNum+strDW+strBig;
strFen = strFen.substring(0,intFen-1);
intFen = strFen.length;
strArr = strFen.split("");
}
return strBig;
}catch(err){
return ""; //若失败则返回原值
}
}

 

 


分享到:
评论

相关推荐

    javascript数字金额转换为中文大写金额

    ### JavaScript 数字金额转换为中文大写金额 在日常财务处理、银行交易或是发票开具等场景中,将数字金额转换成中文大写金额是一项常见的需求。这种转换不仅可以提高正式文档的专业性,还能避免因数字易被篡改而...

    js金额数字规范 大写金额 保留2位数字 js货币格式 规范

    综上所述,通过JavaScript的`toFixed()`、自定义函数和`toLocaleString()`方法,我们可以方便地实现金额数字的规范处理,包括保留两位小数、转换为大写金额以及遵循货币格式。在实际项目中,这些技术可以结合使用,...

    js实现将数字转换为中文大写

    标题和描述中提到的知识点是关于如何使用JavaScript(简称js)编程语言将阿拉伯数字转换为中文大写形式。这种转换通常在财务相关的软件中很常见,尤其是涉及到金额表述时,为了符合财务规范或增加可读性,需要将数字...

    数字金额转换成中文大写金额

    ### 数字金额转换为中文大写金额的意义 在财务、会计以及正式文件中,经常需要将阿拉伯数字表示的金额转换成中文大写金额。这种转换的主要目的是为了防止金额被篡改或误读。例如,在支票填写时,为了避免金额被恶意...

    js实现将小写金额转化为大写金额

    在JavaScript编程中,将小写金额转换为大写金额是一个常见的需求,特别是在财务或电子商务相关的应用中。大写金额主要用于正式的财务报表和发票,以提高数据的清晰度和准确性。下面我们将深入探讨如何利用JavaScript...

    小写数字转换大写金额

    在IT领域,尤其是在网页开发中,经常需要将用户输入的小写数字转换为大写金额格式,这主要用于财务、发票或银行交易等应用场景。这个过程可以通过JavaScript实现,利用JavaScript的事件处理和字符串操作功能。在本例...

    javascript 金额转换(小写转化大写)

    5. **处理小数部分**:小数部分的转换相对简单,只需将其转换为大写即可,注意保留两位。例如,'05'转换为'零伍'。 6. **组合结果**:最后,将整数部分和小数部分的大写形式拼接起来,形成完整的大写金额。 以下是...

    js数字转大写

    - **小数部分处理**:通常保留两位小数,直接转换为汉字即可。 ##### 2. 代码结构分析 - **函数定义**:`changeMoneyToChinese(money)`用于将数字金额转换为大写形式。 - **输入验证**:确保输入的金额不超过一定...

    JS小写金额变成大写

    本文将详细介绍一个JavaScript函数,该函数能够实现将数字金额从小写格式转换为大写格式。 #### 函数定义 函数`chinese(num)`接受一个字符串或数字类型的参数`num`,该参数表示需要转换的小写金额。函数内部首先对...

    用JS将人民币金额转换成大写

    例如,我们可以先将金额字符串转换为数字,然后将整数部分转化为对应的中文大写: ```javascript function integerToChinese(num) { let chineseNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '...

    JS 实现金额大写转换函数

    在JavaScript编程中,有时我们需要将阿拉伯数字的金额转换为中文大写的表示方式,这在财务报表、发票等正式场合非常常见。"JS实现金额大写转换函数"这个话题就是关于如何编写一个JavaScript函数来完成这样的转换。这...

    javascript 小写金额转化成大写

    在IT行业中,尤其是在财务系统和电子商务领域,将小写金额转换为大写是常见的需求,因为大写金额在正式的财务凭证中使用,可以避免因数字混淆而引起的错误。JavaScript作为一种广泛使用的前端脚本语言,提供了丰富的...

    JavaScript 动态将数字金额转化为中文大写金额

    ### JavaScript 动态将数字金额转化为中文大写金额 #### 概述 在日常工作中,尤其是在财务、银行或会计系统中,将数字金额转换为中文大写是非常常见的需求。这不仅可以提高系统的用户友好性,还能确保金额显示的...

    JS 数字转换为大写金额的简单实例

    JS数字转换为大写金额的技术知识点,涉及到编程语言中的JavaScript,并且涉及到金额的数字转换。在金融系统和日常交易中,经常需要用到将数字金额转换为大写金额的表述方式,比如将数字金额转换成“壹万贰仟叁佰肆拾...

    货币大写金额转换插件

    在IT行业中,尤其是在财务软件和电子商务领域,将货币金额从阿拉伯数字(小写)转换为汉字大写是一种常见的需求,因为在中国,财务报告和发票通常要求使用汉字大写表示金额,以防止篡改和提高准确性。JavaScript作为...

    js(非金额)把阿拉伯数字转成中文大写

    根据提供的文件信息,我们可以深入探讨如何使用JavaScript将阿拉伯数字转换为中文大写,尤其是在非金额场景下的应用。此转换在日常编程中具有广泛的应用场景,例如用于生成合同文本中的日期等。 ### 核心概念 ####...

    网页模板——原生JS实现的人民币数字大写转换特效源码.zip

    总结来说,这个"网页模板——原生JS实现的人民币数字大写转换特效源码"涉及到的JavaScript技术包括字符串处理、条件判断、数据映射、金额格式化和错误处理等,这些都是前端开发中不可或缺的基础技能。通过学习和使用...

    js金额小写转大写脚本

    "js金额小写转大写脚本"指的是JavaScript编程语言中用于将小写的货币金额(阿拉伯数字)转换为大写的汉字数字的代码片段。这样的脚本有助于提高财务报表的可读性和规范性,因为在中国,正式的财务文档通常要求金额以...

    将数字转成英文的js代码

    将数字翻译成英语的JavaScript,可以自动判断出你输入的数字是多大,它会自动拼合,按亿、千万、百万的语法翻译出来,挺实用。

    JS实现将数字金额转换为大写人民币汉字的方法

    本文介绍了一个具体的案例:使用JavaScript语言将数字金额转换为大写人民币汉字的方法。这个方法涉及到JavaScript中的字符串操作、数组操作、逻辑判断等编程技巧。 首先,我们来了解数字金额转大写的基本概念。在...

Global site tag (gtag.js) - Google Analytics