/* ===========================================================
模块说明:对于javascript字符串操作的一些补充功能
charset:gb2312
调用模块:stringutils.js
搜集整理:sagahu@163.com
最后修订:2011-12-12
*/
// 把给定非负整数按照指定位数要求格式化为编码
function coding(uint, len) {
var code = '00000000000000000000000' + uint.toString();
return code.substring(code.length - len, code.length);
}
// 格式化浮点数的显示:每3位一“,”分隔,小数点后保留指定精度位数。
function formatFloat(value, prec) {
var value1 = (Math.round(value * Math.pow(10, prec)) / Math.pow(10, prec)).toString();
var arr = value1.split('.');
var left = arr[0];
var right = arr[1] == null ? '00000000000000000000' : arr[1] + '00000000000000000000';
var left2 = '';
for (j = left.length - 1; j >= 0; j--) {
left2 = left.charAt(j) + left2;
if ((left.length - j) == left.length) break;
if ((left.length - j) % 3 == 0) left2 = ',' + left2;
}
var right2 = '';
for (i = 0; i < right.length; i++) {
right2 += right.charAt(i);
if ((i + 1) == prec) break;
if ((i + 1) % 3 == 0) right2 += ',';
}
return left2 + '.' + right2;
}
// 从格式化浮点数字符串还原为浮点数
function formatFloatReverse(floatStr) {
return parseFloat(floatStr.replace(/,/g, ''));
}
// 从小写货币数值转换为汉字大写字符串
function bigMoney(value) {
var intFen, i;
var strArr, strCheck, strFen, strDW, strNum, strBig, strNow;
if (trim(value) == "") {
return "零";
}
if (isNaN(value)) {
strErr = "数据" + value + "非法!";
alert(strErr);
return "";
}
strCheck = value + ".";
strArr = strCheck.split(".");
strCheck = strArr[0];
var len = strCheck.length;
if (len > 12) {
strErr = "数据" + value + "过大,无法处理!";
alert(strErr);
return "";
}
try {
i = 0;
strBig = "";
var s00 = "00";
var svalue = value + "";
var ipos = svalue.indexOf(".");
var iiLen = svalue.length;
if (ipos < 0) {
strFen = svalue + "00";
} else if (ipos == iiLen - 2) {
strFen = svalue.substring(0, iiLen - 2) + svalue.substring(iiLen - 1, iiLen) + "0";
} else if (ipos == iiLen - 3) {
strFen = svalue.substring(0, iiLen - 3) + svalue.substring(iiLen - 2, iiLen);
} else {
strFen = svalue.substring(0, ipos) + svalue.substring(ipos + 1, ipos + 3);
}
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("");
}
if (strBig == "整") { strBig = "零"; }
return strBig;
} catch (err) {
return "";
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述