/***
* 数字格式化(适合金融产品截断小数位后展示)
* @param num
* @param pattern (标准格式:#,###.## 或#.## 或#,###00.00)
* @param round 1=四舍五入后格式化;0=截断格式化
* @returns {string}
*/
function formatNumber(num, pattern, round) {
if (num && !/^[\d\.]+$/g.test(num)) {
console.log("the number format is incorrect!");
return "";
} var formatLeft = "";
var formatRight = "";
var symbolFlag = pattern.lastIndexOf(".");
if (symbolFlag == -1) {
formatLeft = pattern;
} else {
formatLeft = pattern.substring(0, pattern.lastIndexOf("."));
formatRight = pattern.substring(pattern.lastIndexOf(".") + 1, pattern.length);
}
//四舍五入
if (round == 1) {
num = new Number(num).toFixed(formatRight.length);
} //格式化数字
var numberLeft = "";
var numberRight = "";
var numSymbolFlag = num.lastIndexOf(".");
if (numSymbolFlag == -1) {
var numberLeft = num;
} else {
var numberLeft = num.substring(0, num.lastIndexOf("."));
var numberRight = num.substring(num.lastIndexOf(".") + 1, num.length);
} var numberBucket = new Array();
var formatFlag = formatLeft.indexOf("#,###");//千位符标记
var count = 1;
var len = numberLeft.length;
for (var i = len; i > 0; i--) {
numberBucket.unshift(numberLeft.charAt(i - 1));
if (formatFlag != -1) {
if (count % 3 == 0 && count != len) {
numberBucket.unshift(',');
}
}
count++;
}
if (symbolFlag != -1) {
numberBucket.push('.');
}
for (var i = 0; i < formatRight.length; i++) {
if (formatRight.charAt(i) && numberRight.charAt(i)) {
numberBucket.push(numberRight.charAt(i))
} else {
numberBucket.push("0");
}
}
return numberBucket.join("");
} //测试
document.writeln(formatNumber("123456789.123456", "#") + "<br/>");
document.writeln(formatNumber("123456789.123456", "#.#")+ "<br/>");
document.writeln(formatNumber("123456789.123456", "#,###") + "<br/>");
document.writeln(formatNumber("123456789.123456", "#,###.#")+ "<br/>");
document.writeln(formatNumber("123456789.123456", "#,###.#")+ "<br/>");document.writeln(formatNumber("123456789.123456", "#,###.####")+ "<br/>");document.writeln(formatNumber("1.50", "#.#", 1) + "<br/>");document.writeln(formatNumber("1.125456", "#.#", 1) + "<br/>");document.writeln(formatNumber("1.125456", "#.##", 1) + "<br/>");
document.writeln(formatNumber("1.125456", "#.###", 1) + "<br/>");
document.writeln(formatNumber("1.125456", "#.####", 1) + "<br/>");
document.writeln(formatNumber("1.125456", "#.#####", 1) + "<br/>");

最新文章

  1. jQuery Lightbox图片放大预览
  2. java回调机制
  3. Android守护进程
  4. Network Assistant (Alpha)版使用说明
  5. MVC认知路【点点滴滴支离破碎】【一】----新建数据库
  6. jq实现鼠标移动到 图片上放大,移开图片缩小效果(打算封装成插件)
  7. MongoDB的学习和使用
  8. js输入,输出基本操作
  9. 【C#】属性(Attribute)
  10. sc.exe管理系统服务
  11. bzoj 1951 [Sdoi2010]古代猪文(数论知识)
  12. MSSQL奇技淫巧
  13. 求最短路径算法之SPAF算法。
  14. flask 部署后并发测试
  15. S-CMS企建v3二次SQL注入
  16. 07-查询操作(DQL)-多表查询
  17. RGB Resampler IP核的测试
  18. [ 测试思维 ] 启发式测试策略模型(HTSM)
  19. Open Source Log Management
  20. 数据源与JNDI资源实现JSP数据库连接池实例

热门文章

  1. CrashRpt_v.1.4.2_vs2008_also_ok
  2. 从零开始人工智能AI(一)-k-nn-矩阵
  3. 【spring boot】application.properties官方完整文档
  4. python中的内置函数(一)
  5. 用JavaScript刷LeetCode的正确姿势
  6. QSqlRelationalTableModel的Select语句会改变列的名字
  7. Docker容器化部署Python应用
  8. 解析《Effective Java》之多个构造器、Javabeans模式和Builder模式
  9. log4net插入access自定义字段
  10. kubernetes实战篇之helm使用技巧