精华内容
下载资源
问答
  • 主要介绍了JS数字千分位格式化实现方法,结合实例形式总结分析了JS实现数字千分位格式化的常用技巧,包括字符串的分割、拼接、遍历及正则操作等相关实现技巧,需要的朋友可以参考下
  • 下面小编就为大家带来一篇JavaScript数值千分位格式化的两种简单实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • JS-千分位格式化数据

    2021-05-12 15:14:12
    JS中千分位格式化数据实现方法如下 功能描述:将给定的数字转化为千分位的格式,如把12345678转化为12,345,678。 实现方法如下 利用正则实现 function toThousands(num){ let str = num.toString(); return str....

    JS中千分位格式化数据

    功能描述:将给定的数字转化为千分位的格式,如把12345678转化为12,345,678

    实现方法如下

    1. 利用正则实现
    function toThousands(num){
        let str = num.toString();
        return str.replace(/(\d)(?=(?:\d{3})+$)/g, "$1,");
    }
    toThousands(123);  //123
    toThousands(1234546); //123,456
    toThousands(12345678); //12,345,678
    
    1. 字符串拆分拼接:讲数字转换成数组,再通过循环,逐个倒序unshift把元素推进新数组,当为三的倍数次,就插入逗号,最后把新数组拼接成一个字符串。(缺点:一位一位的加进去,性能差,且还要先转换成字符串再转换成数组。)
    function toThousands(num){
        let numArr = num.toString().split("");
        let arr = [];
        let count = 0; //用于计数
        for(let i=numArr.length-1; i>=0; i--){
            count++;
            arr.unshift(numArr[i]);
            if(!(count%3)&&i!==0) arr.unshift(",");
        }
        return arr.join("");
    }
    
    1. 每截取三位进行拼接:每次取末尾三位子字符串放到一个新的空字符串里并拼接上之前的末三位,原本字符串要不断截取直到长度小于三位,最后再拼接在一起。
    function toThousands(num){
        let str = num.toString();
        let res = ""; //用于接收拼接后的新字符串
        while(str.length > 3){
            res = "," + str.slice(-3) + res;
            str = str.slice(0, str.length-3);
        }
        return str + res;   
    }
    
    展开全文
  • 最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改 之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持用逗号隔开 ...
  • //转换成带千分位格式 function formatNumber(s) { if (!isNaN(s)) { s = $.trim(s + ""); var l = s.split(".")[0].split("").reverse(), r = s.indexOf(".") >= 0 ? "." + s.split(".")[1] : ""; ...
        //转换成带千分位格式
        function formatNumber(s) {
            if (!isNaN(s)) {
                s = $.trim(s + "");
                var l = s.split(".")[0].split("").reverse(), r = s.indexOf(".") >= 0 ? "."
                    + s.split(".")[1]
                    : "";
                t = "";
                for (var i = 0; i < l.length; i++) {
                    t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
                }
                return t.split("").reverse().join("") + r;
    
            } else {
                return s;
            }
        }
    
        //去除千分位符号
        function clearComma(s) {
            if ($.trim(s) == "") {
                return s;
            } else {
                return (s + "").replace(/[,]/g, “”);
            }
        }
    
    展开全文
  • }, 三:千分位格式化数字(这是提出给Number了) // 千分位格式化金额 Number.prototype.moneyFormatter = function () { let val = ''; val = this; if (this !== undefined && this !== null && this !== '') { ...

    前提自己要安装一个accounting依赖
    我这里用的"accounting": "^0.4.1"版本
    1、在components文件夹下新建一个index.js的文件,代码内容如下

    import currencyInputComponent from "./CurrencyInput";
    
    const currencyInput = {
        install:function(Vue){
            Vue.component("currency-input",currencyInputComponent)
        }
    }
    export default currencyInput
    

    2、在components文件夹下新建一个CurrencyInput.vue的文件,代码内容如下

    <template>
      <div>
        <div class="el-input el-input--small" v-bind:class="{'is-disabled':disabled}">
          <el-input type="text" prefix-icon="el-icon-edit" style="width: 100%;" v-bind:value="formatValue" v-on:input="updatevalue($event)" v-on:blur="onBlur" v-on:focus="selectAll" v-bind:disabled="disabled" ref="input">
              <template slot="prepend"><span style="color: red">*</span> {{name}}</template>
          </el-input>
        </div>
        <!-- 例子:  <currency-input v-model="ceshi" :name="'测试地址'"></currency-input>   -->
      </div>
    </template>
    
    <script>
    import accounting from "accounting";
    export default {
      props: {
        value: {
          type: [String, Number],
          default: 0,
          desc: "数值",
        },
        symbol: {
          type: String,
          default: "",
          desc: "货币标识符",
        },
        decimal: {
          type: Number,
          default: 2,
          desc: "小数位",
        },
        disabled: {
          type: Boolean,
          default: false,
          desc: "是否禁止",
        },
        name: {
          type: String,
        }
      },
      data() {
        return {
          focused: false,
        };
      },
      created() {
      },
      computed: {
        formatValue() {
          if (this.focused) {
            return this.value ? accounting.unformat(this.value) : "";
          } else {
            if (this.value === 0) {
              return accounting.formatMoney(this.value, this.symbol, this.decimal);
            } else if (
              this.value === "" ||
              this.value === null ||
              this.value === undefined
            ) {
              return "";
            } else {
              return accounting.formatMoney(this.value, this.symbol, this.decimal);
            }
          }
        },
      },
      watch: {
        value(val) {if (this.validateEvent) {
            this.dispatch("ElFormItem", "el.form.change", [val]);
          }
        },
      },
      methods: {
        updatevalue(value) {
          var formatvalue = !!value ? accounting.unformat(value) : "";
          this.$emit("input", formatvalue);
        },
        onBlur() {
          this.focused = false;
          this.$emit("blur");
          this.dispatch("ElFormItem", "el.form.blur", [this.value]);
        },
        selectAll(event) {
          this.focused = true;
          setTimeout(() => {
            event.target.select();
          }, 0);
        },
    
        dispatch(componentName, eventName, params) {
          var parent = this.$parent || this.$root;
          var name = parent.$options.componentName;
    
          while (parent && (!name || name !== componentName)) {
            parent = parent.$parent;
    
            if (parent) {
              name = parent.$options.componentName;
            }
          }
          if (parent) {
            parent.$emit.apply(parent, [eventName].concat(params));
          }
        },
      },
    };
    </script>
    

    3、使用

    <currency-input v-model="action.amt" :name="'收款金额'"></currency-input>
    

    二:element的el-table对金额的格式化

    moneyFormatter(row, column, cellValue, index) {
     if(cellValue == null) return 'null'
       let n = '';
       n = String(cellValue);
       if(!n) return n;
       let str = n.split('.');
       let re = /\d{1,3}(?=(\d{3})+$)/g;
       let n1 = str[0].replace(re, "$&,");
       return str.length > 1 && str[1] ? `${n1}.${str[1]}` : `${n1}.00`;
    },
    

    三:千分位格式化数字(这是提出给Number了)
    // 千分位格式化金额

    Number.prototype.moneyFormatter = function () {
        let val = '';
        val = this;
        if (this !== undefined && this !== null && this !== '') {
          if(val == null) return 'null'
          let n = '';
          n = String(val);
          if(!n) return n;
          let str = n.split('.');
          let re = /\d{1,3}(?=(\d{3})+$)/g;
          let n1 = str[0].replace(re, "$&,");
          return str.length > 1 && str[1] ? `${n1}.${str[1]}` : `${n1}.00`;
        }
      },
    
    展开全文
  • 将数字转换为千分位格式

    千次阅读 2019-06-25 11:15:07
    "use strict"; var toDecimalMark = function toDecimalMark(num) { return num.toLocaleString('en-US'); }; 测试 toDecimalMark(123456789.9846); 结果
    "use strict";
    
    var toDecimalMark = function toDecimalMark(num) {
      return num.toLocaleString('en-US');
    };
    

    测试

    toDecimalMark(123456789.9846);
    

    结果
    测试结果

    展开全文
  • ```sql SELECT TRIM (TO_CHAR(8888888.9, '999G999G990D00')) PostgreSql ;实现千分位格式,保留两位操作 结果展示
  • transformStyle(value) { return (value).toString().replace(/(\d{1,3})(?=(\d{3})+$)/g, '$1,'); },
  • js 数字千分位格式

    2019-04-04 17:45:16
    functionformat(num){ return(num.toFixed(2)+'').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,'$&,'); }
  • 使用Number.prototype.toLocaleString() var num = 23455678; var num1 = 23455678.12; ...var formatNum = num.toLocaleString('en-US');...var formatNum1 = num1.toLocaleString('en-US');...console.log(forma...
  • num.split('.') // 整数部分前后反转 intNum = intNum.split('').reverse().join('') // 现在就是从前往后替换千分位的‘,’了 intNum = intNum.replace(/\d{3}/g, '$&,') // 最后再反转回去 intNum = intNum.split...
  • Js千分位格式化金额数字的方法

    千次阅读 2018-10-29 15:17:03
    应用场景:在比较大小的时候,金额的千分位格式需要去掉,才能比较大小! 1.添加千分位 function fmoney(s, n) { n = n &gt; 0 &amp;&amp; n &lt; = 20 ? n : 2; s = parseFloat((s + "&...
  • 分两种情况:不使用vue/cli脚手架搭建和使用vue/cli脚手架搭建的项目 一、不使用vue/cli脚手架搭建 1、该组件基于vue,element,accountingjs 2、引入相应的js文件 ... 自定义金额格式化组件,...
  • 需求1:对数字实现千分位格式化处理
  • 金额转为千分位格式

    2018-10-29 14:44:03
    //js中将金额转为千分位格式 KaTeX parse error: Expected 'EOF', got '#' at position 3: (&quot;#̲moneySpan&quot;).htm…)/g, ‘$&amp;amp;,’)); //jsp中将金额转为千分位 &amp;lt;fmt:...
  • 由于有个需求,需要将一个数字格式化为货币型,但是货币型一般是2位小数, 不是1位,或者3位,甚至更多,不过我这个后面小数位数大于3位的,我没处理,也没千分位分开,就是用逗号分开。比如:123456789.156789,我...
  • 当系统中涉及到很多金额并且数额较大时需要对数字进行千分位格式化,提升数字的可阅读性 具体方式,可以封装一个方法 export function formatCurrency(num) { if (num || num == 0) { // 将num中的$,去掉,将num...
  • D.4_13_千分位格式

    2020-12-16 10:34:53
    D.4_13_千分位格式 #include <stdio.h> int main() { long long n; scanf("%lld", &n); if(n==0){ printf("0"); return 0; } long long a, g = n, h = n, f; a = n; long long b, w = 1, t; ...
  • 千分位格式化金额

    千次阅读 2017-08-23 18:37:29
    百度了一圈,发现都不靠谱,算了,自己写一个吧(还是不要太懒), 像我一样懒的直接拿去用吧: function formatAmount(amount) { amount = amount.toString(10).split('.');... let _int = amount[0].split('')...
  • 一个字符串如何转变为一个金额千分位格式化。用最原始的方式写成。 func numFormat(str string) string { numStr := strings.Split(str, ".")[0] //如果有小数获取整数部分 length := len(arr) if length < 4 ...
  • 数字千分位格式

    2021-07-29 10:50:55
    千分位格式化 // 千分位格式化 numberFormat(num:number):string{ if(String(num).length <=3) return num + ""; let reg=/\d{1,3}(?=(\d{3})+$)/g; return (num + '').replace(reg, '$&,'); }, ...
  • NPOI设置Excel单元格千分位格式

    千次阅读 2019-11-26 09:36:04
    BuiltinFormats (POI API Documentation) ...根据上面的链接,设置Excel单元格千分位格式,以下写法都行: HSSFCellStyle stringnum = (H...
  • 数字格式化: 123,456.0000 DecimalFormat df = new DecimalFormat("0.0000");
  • 在一些业务场景,例如金额、次数等数字需要进行千分位格式化原生方法(整数千分位格式化) /** * 将整数格式化成每 3 位添加一个逗号 * @param {Number} num 待格式化的数字 * @returns {String} 返回格式化后的...
  • Java 字符串小数转成千分位格式

    千次阅读 2018-06-07 17:37:31
    java中需要将字符串小数转成千分位格式显示,如下代码,原理是使用正则表达式对整数位进行千分位格式化,然后小数位拼接起来.为什么要这么麻烦的处理,是因为在android程序中使用的NumberFormat,本来是可以做千分位的...
  • 千分位格式化函数

    2021-05-28 09:48:15
    } // 遍历结束会得到倒叙排列的字符串,然后转成数组调整排列顺序后再转回字符串 rightStr=leftStr.split("").reverse().join("") // 将右侧部分从左到右遍历,最后得到千分位格式的字符串 if(newArr.length>1){ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,854
精华内容 2,341
关键字:

千分位格式