/** 格式化数字显示方式* 规则:* #代表占位符,不足不补0,0代表占位符,不足补0,进位按照四舍五入原则* 用法:* formatNumber(12345.999,'#,##0.00');* formatNumber(12345.999,'#,##0.##');* formatNumber(123,'000000');* @param num* @param pattern*/
export function formatNumber(num: number, pattern: string) {const fmtarr = pattern ? pattern.split('.') : ['']; // 格式化字串转为数组// 四舍五入处理const decimals = fmtarr.length > 1 ? fmtarr[1].length : 0; // 小数位num = Math.round(num * Math.pow(10, decimals)) / Math.pow(10, decimals);const strarr = num ? num.toString().split('.') : ['0']; // 值->字符串->数组let retstr = '';// 整数部分let str = strarr[0];let fmt = fmtarr[0];let i = str.length - 1;let comma = false;for (let f = fmt.length - 1; f >= 0; f--) {switch (fmt.substr(f, 1)) {case '#':if (i >= 0) {retstr = str.substr(i--, 1) + retstr; // 加当前字符}break;case '0':if (i >= 0) {retstr = str.substr(i--, 1) + retstr; // 加当前字符} else {retstr = '0' + retstr; // 补0}break;case ',':comma = true; // 有千位符retstr = ',' + retstr; // 直接加上逗号(,)break;}}// 整数字符串替换格式后剩余字符串处理if (i >= 0) {if (comma) {const l = str.length;for (; i >= 0; i--) {retstr = str.substr(i, 1) + retstr;if (i > 0 && (l - i) % 3 === 0) {retstr = ',' + retstr; // 加上千位符}}} else {retstr = str.substr(0, i + 1) + retstr; // 无千位符直接加在前面}}retstr = retstr + '.';// 处理小数部分str = strarr.length > 1 ? strarr[1] : '';fmt = fmtarr.length > 1 ? fmtarr[1] : '';i = 0;for (let f = 0; f < fmt.length; f++) {switch (fmt.substr(f, 1)) {case '#':if (i < str.length) {retstr += str.substr(i++, 1); // 加当前字符}break;case '0':if (i < str.length) {retstr += str.substr(i++, 1); // 加当前字符} else {retstr += '0'; // 补0}break;}}// 返回// 1.去掉开头的逗号(,)和加号(+);2.结尾的小数点(.)return retstr.replace(/^,+/, '').replace(/\.$/, '');
}

Excel数字格式转换方法相关推荐

  1. asp导出EXCEL数字格式及自动适应宽度的问题

    asp导出EXCEL数字格式及自动适应宽度的问题 下面直接进行代码演示: <% If Response.IsClientConnected Then Response.Flush Else Re ...

  2. Python xlwt设置excel数字格式

    对于xls类型的excel,常需要设置单元格的数字格式. 经整理以下是各个数字格式(包括:常规格式.自定义.货币.百分数.科学记数法.分数.会计专用.文本及日期格式)的设置方法以及设置后效果展示. 代 ...

  3. python 写入excel数字格式,怎么在Python中写入Excel的格式

    怎么在Python中写入Excel的格式 发布时间:2021-03-12 17:02:25 来源:亿速云 阅读:77 作者:Leah 这期内容当中小编将会给大家带来有关怎么在Python中写入Exce ...

  4. fastadmin导出excel数字格式,支持excel求和运算

    一.导出数字格式 在初始化  table.bootstrapTable 的时候增加js exportOptions: {fileName: 'export_' + Moment().format(&q ...

  5. java导出excel数字格式_POI 导出excel带小数点的数字格式显示不对解决方法

    最近看到了一个问题就是java导出excel中带小数点的数字显示不对, 比如我想在excel中第一行显示:  3,000.0 但是在excle中导出的格式总是不带小数点 3000(非文本格式),而且也 ...

  6. python 写入excel数字格式_从Pandas写入Excel时设置默认数字格式

    我把浮点数的格式改为小数点后1位.data = {'A Prime': {0: 3.26, 1: 3.24, 2: 3.22, 3: 3.2, 4: 3.18, 5: 3.16, 6: 3.14, 7 ...

  7. POI 导出excel带小数点的数字格式显示不对解决方法

    POI 导出excel带小数点的数字格式显示不对解决方法 参考文章: (1)POI 导出excel带小数点的数字格式显示不对解决方法 (2)https://www.cnblogs.com/firstd ...

  8. Excel 2007中创建或删除自定义数字格式

    Excel 2007提供了许多内置数字格式,但如果这些格式无法满足您的需要,您可以自定义内置数字格式以便创建自己的数字格式. 创建自定义数字格式 1.打开要创建并存储自定义数字格式的工作簿. 2.在& ...

  9. excel不显示0_【扫盲】小白必看:excel表里数字格式常见的几种错误?

    hello,我是小萌,在后台收到了许多小伙伴的回复,其中有一个小伙伴说,你分享的excel办公小技巧真棒,超级实用,而且操作简单,容易学习,但是有个小问题,比如我们新手有的连excel里的单元格,数据 ...

最新文章

  1. 视觉人工智能市场格局初成型,国内企业占半壁江山
  2. ORA-600 [kddummy_blkchk] [18038] 一例
  3. mysql 怎么导入函数_mysql导入导出包括函数或者存储过程_MySQL
  4. 关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
  5. [云炬创业学笔记]第二章决定成为创业者测试15
  6. POI导出word带图片及本地测试没问题,在服务器上找不到模板的问题
  7. 忧云:喻红艺术展观后
  8. 【转】WebApi 身份认证解决方案:Basic基础认证
  9. python扫描字符串文本时下线_python:SyntaxError:扫描字符串li时的EOL
  10. sails mysql_sails项目创建与常用基础操作总结
  11. Spring 解耦反射创建对象
  12. c语言中3%3e2%3e1的值,C语言--ch2--数据类型和表达式.ppt
  13. 按新的退休年龄计算,64年的职工应该是哪年退休呢?
  14. vueweb端响应式布局_响应式网站和PC+手机端网站有什么区别?
  15. 【CUDA学习】计时方法
  16. 阻止picker.js插件弹出键盘
  17. oracle查看脚本,oracle 查看表空间的脚本
  18. win10计算机管理字体糊,完美解决:Win10系统字体模糊解决教程
  19. 关于约束多目标MOEA/D-DAE
  20. boost库中thread多线程中的thread_specific_ptr

热门文章

  1. CentOS7安装Oracle11g时84%出错,求大佬解答
  2. 积极响应号召_30多个“号召性用语”按钮模板下载
  3. electron仿微信截图工具(初学者的尝试笔记)
  4. 【224】基本功能计算器
  5. ligo_algo_art
  6. 手把手系列--验证自己编写的STM32H750XBH6_ArtPi平台Keil MDK Flash下载算法
  7. 网易视频云:HBase优化实战
  8. 武林秘籍之设计模式迷你手册
  9. mapbox pbf vt2geojson 解析pbf图层为geojson格式
  10. 专访天联世纪总裁朱威廉:暴利网游遭遇拐点