js格式化金额可选是否带千分位以及保留精度

时间:2023-10-06 04:03:14 

js格式化金额,可选是否带千分位,可选保留精度,也是网上搜到的,但是使用没问题


/*
将数值四舍五入后格式化.
@param num 数值(Number或者String)
@param cent 要保留的小数位(Number)
@param isThousand 是否需要千分位 0:不需要,1:需要(数值类型);
@return 格式的字符串,如'1,234,567.45'
@type String
*/
function formatNumber(num,cent,isThousand){
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))//检查传入数值为数值类型.
num = "0";
if(isNaN(cent))//确保传入小数位为数值型数值.
cent = 0;
cent = parseInt(cent);
cent = Math.abs(cent);//求出小数位数,确保为正整数.
if(isNaN(isThousand))//确保传入是否需要千分位为数值类型.
isThousand = 0;
isThousand = parseInt(isThousand);
if(isThousand < 0)
isThousand = 0;
if(isThousand >=1) //确保传入的数值只为0或1
isThousand = 1;
sign = (num == (num = Math.abs(num)));//获取符号(正/负数)
//Math.floor:返回小于等于其数值参数的最大整数
num = Math.floor(num*Math.pow(10,cent)+0.50000000001);//把指定的小数位先转换成整数.多余的小数位四舍五入.
cents = num%Math.pow(10,cent); //求出小数位数值.
num = Math.floor(num/Math.pow(10,cent)).toString();//求出整数位数值.
cents = cents.toString();//把小数位转换成字符串,以便求小数位长度.
while(cents.length<cent){//补足小数位到指定的位数.
cents = "0" + cents;
}
if(isThousand == 0) //不需要千分位符.
return (((sign)?'':'-') + num + '.' + cents);
//对整数部分进行千分位格式化.
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}
标签:格式化金额,千分位,精度
0
投稿

猜你喜欢

  • Hibernate Oracle sequence的使用技巧

    2009-06-19 17:25:00
  • 详解python 一维、二维列表的初始化问题

    2023-01-21 06:57:31
  • Python之京东商品秒杀的实现示例

    2023-01-31 05:49:07
  • Python获取文件所在目录和文件名的方法

    2021-04-07 05:44:35
  • python点云地面点滤波(Progressive Morphological Filter)算法介绍(PCL库)

    2021-12-23 00:38:29
  • 让ThinkPHP支持大小写url地址访问的方法

    2023-11-17 02:28:37
  • 详解Python中Sync与Async执行速度快慢对比

    2023-02-06 13:26:45
  • Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签

    2022-12-10 13:55:18
  • 如何用GAN训练自己的数据生成新的图片

    2023-04-13 16:45:07
  • Python使用Scrapy保存控制台信息到文本解析

    2022-04-12 20:29:00
  • Python学生成绩管理系统简洁版

    2023-08-23 01:33:08
  • js自动闭合html标签(自动补全html标记)

    2023-08-25 07:06:35
  • 简单聊聊Golang中defer预计算参数

    2023-07-22 03:55:09
  • MySQL学习笔记之数据的增、删、改实现方法

    2024-01-27 04:07:41
  • python用Configobj模块读取配置文件

    2023-10-30 04:29:00
  • 100行Python代码实现每天不同时间段定时给女友发消息

    2023-07-11 20:32:56
  • Python实现读取字符串按列分配后按行输出示例

    2023-08-07 19:39:14
  • Asp Response.Expires 属性介绍

    2008-02-19 17:02:00
  • Scrapy爬虫实例讲解_校花网

    2023-03-02 14:46:39
  • django redis的使用方法详解

    2023-08-03 10:54:30
  • asp之家 网络编程 m.aspxhome.com