`
leeqq
  • 浏览: 137412 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

数字做格式化

    博客分类:
  • web
阅读更多

数字格式化应该很常用,保留几位小数,四舍五入,千分位分割

奈何项目上原有格式化方法,功能比较单一,只能格式化成如 12,456,451.00这样的数字,整数部分千分位分割,小数部分直接舍弃,用两个0表示

 

无奈自己写了一个

 

/**
 * 格式化数字(小数位数,千分位逗号分割)
 * @param nStr 数字或者字符串
 * @param decimal 数字 小数位要补全的位数 默认2 如8.00
 * @param precision 小数部分有效的位数 默认0 如8.00 设置1所得结果如8.40
 * @param round 是否要四舍五入 true四舍五入 false直接截断 默认false
 * @param thousand 是否要千分们分割 默认false不分割
 * @param formatDecimal 小数部分是否要千分位分割 默认false不分割
 * @return string 格式化后的数字字符串
 */
function numFormat (nStr, decimal, precision, round, thousand, formatDecimal) {
    if (typeof decimal === 'boolean') {
        formatDecimal = typeof round === 'boolean' && round;
        thousand = typeof precision === 'boolean' && precision;
        round = decimal;
    } else if (typeof precision === 'boolean') {
        formatDecimal = typeof thousand === 'boolean' && thousand;
        thousand = typeof round === 'boolean' && round;
        round = precision;
    }

    typeof decimal === 'number' || (decimal = 2);
    typeof precision === 'number' || (precision = 0);
    precision = precision < decimal ? precision : decimal;
    round = typeof round === 'boolean' && round;
    thousand = typeof thousand === 'boolean' && thousand;
    formatDecimal = typeof formatDecimal === 'boolean' && formatDecimal;

    nStr || (nStr = 0);
    nStr = (nStr + '').replace(/[^\d\.]/g, '');
    if (round) {
        nStr = Number(nStr).toFixed(precision);
    } else {
        nStr += '';
        if (precision === 0) {
            nStr = nStr.replace(/\..*/, '');
        } else if (nStr.indexOf('.') >= 0) {
            for (var index = 0; index < decimal; index++) {
                nStr += '0';
            }
            nStr = nStr.replace(new RegExp('(\\.\\d{' + precision + '}).*'), '$1');
        }
    }

    nStr = Number(nStr).toFixed(decimal);
    var nArr = nStr.split('.');
    if (thousand && nArr[0]) {
        nArr[0] = nArr[0].replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1,');
    }
    if (thousand && formatDecimal && nArr[1]) {
        nArr[1] = nArr[1].replace(/(\d{3})(?=\d{1,3})/g, '$1,');
    }
    return nArr.join('.');
}

 

分享到:
评论

相关推荐

    易语言格式化数字

    易语言格式化数字源码,格式化数字,取格式化数字_

    oracle格式化为数字

    最简洁的oracle格式化为数字,保留小数位数,简单易行,功能全面

    finereport格式化金额函数js中进行数字超大金额千位符格式化处理.docx

    "finereport格式化金额函数js中进行数字超大金额千位符格式化处理" 本文主要讲解了finereport格式化金额函数在JS中进行数字超大金额千位符格式化处理的方法。该需求在前端开发中非常普遍,例如音乐app中的歌曲播放...

    JavaScript数字格式化

    该文档为javascript的数字格式化方法,可用于保留小数位,强制添0等操作

    jquery数字格式化分隔符插件

    **jQuery数字格式化分隔符插件:jquery-number-divider** 在网页开发中,尤其是在处理大量数据或财务信息时,数字的格式化显得尤为重要。`jquery-number-divider` 是一个专为jQuery设计的轻量级插件,它使得在前端...

    jsp格式化数字

    这里主要介绍两种常用的JSP标签库来实现数字格式化:JSTL(JavaServer Pages Standard Tag Library)中的`&lt;fmt:formatNumber&gt;`标签和EL(Expression Language)表达式。 `&lt;fmt:formatNumber&gt;`是JSTL fmt 标签库中的...

    JS中格式化数字的5个方法

    根据提供的文件信息,本文将详细介绍JavaScript中五种常用的数字格式化方法:`CurrencyFormatted`、`format_number`、`CommaFormatted`、`addCommas` 和 `number_format`。这些函数可以帮助开发者更加灵活地处理和...

    C#中数字日期格式化输出

    在C#编程语言中,数字和日期时间的格式化输出是一项基本且重要的任务。这涉及到将数字和日期转换为人类可读的字符串形式,以便在控制台、日志、用户界面或其他输出源中呈现。本篇文章将深入探讨C#中的数字和日期时间...

    javascript 日期数字文本格式化

    在JavaScript中,日期和数字的文本格式化是一个常见的需求,特别是在构建用户界面或者处理数据时。这个主题主要涉及如何将日期对象转换为易读的字符串,以及如何对数字进行格式化,使其符合特定的显示标准。这篇博文...

    Struts2 格式化日期、时间和数字

    以下是对Struts2中日期、时间和数字格式化的详细解释。 首先,我们来了解Struts2中的`ValueStack`。`ValueStack`是Struts2的核心组件,它管理着Action对象和视图层之间的数据传递。当我们需要在JSP页面上显示日期或...

    把数字格式化成大写的金额显示(完整版)

    把数字格式化成大写的金额显示(完整版)

    格式化数字编辑框

    为解决这些BUG,自己写了一个从CEdit派生的格式化数字编辑框,可设置类型有NORMALDATA-字符串数据;UNSIGNEDNUM-无符号整数;SIGNEDNUM-有符号整数;UNSIGNEDDOT-无符号小数;SIGNEDDOT-有符号小数;FORMATNUM-格式...

    数字或金额千分位格式化组件

    5. **国际化支持**:考虑到不同国家和地区的数字格式差异(例如,一些地方使用逗号作为小数点,而其他地方使用句点),组件应该提供国际化选项,以便适应不同的显示需求。 6. **自定义样式**:为了适应不同的UI设计...

    c#格式化数字

    根据提供的代码示例,我们可以总结出以下关于C#中数字格式化的关键知识点: ### 1. 使用`string.Format()`方法进行格式化 `string.Format()`方法允许你通过指定的格式字符串来格式化一个或多个数值。此方法可以...

    Delphi格式化数字金额..rar

    在Delphi编程环境中,处理数字金额的格式化是一项常见的任务,尤其在财务软件或报表系统中更为重要。本文将深入探讨如何在Delphi中对数字金额进行格式化,使其符合中国的货币显示规则,例如添加逗号分隔符、人民币...

    Java数字、货币值和百分数等的格式化处理

    Java中的数字、货币值和百分数格式化是编程中常见的需求,特别是在处理用户界面和国际化的应用程序时。Java提供了一套强大的工具来实现这些格式化,主要通过`java.text.Format`类及其子类来完成。在这个场景中,我们...

    用来对钱的数字类型来进行格式化操作设置的

    用来对钱的数字类型来进行格式化操作设置的

    C#String.Format数字格式化输出

    C#String.Format数字格式化输出;有比较详细的讲解。希望对大家有用。

    Java字符串 日期 数字格式化输出-.doc

    Java 字符串日期数字格式化输出 Java 中的字符串日期数字格式化输出是一种常见的操作,特别是在数据输出和显示时。 Java 提供了多种方式来实现格式化输出,包括使用 NumberFormat、DecimalFormat 和 ...

Global site tag (gtag.js) - Google Analytics