1. 当前位置:生活科普展示 >科普 >


js保留两位小数方法总结

js保留两位小数方法总结

来源: 浏览:704 2022-01-17 19:58:01

本文是一个小系列。针对经典的js保留两位小数的问题,我们对各种情况下的函数编写方法进行了梳理,并对遇到的问题进行了分析。以下是全部内容:

1、 让我们从经典的“舍入”算法开始

一,。四舍五入

var num=2.446242342;

num=num.tofixed(2);//输出为2.45

二,。不舍入

第一种方法是将十进制边设置为整数:

数学地板(15.7784514000*100)/100/输出为15.77

其次,作为字符串,使用常规匹配:

编号(15.7784514000.tostring()。匹配(/^\d+(?;:\。\d{0,2})和#63;/)//输出结果为15.77,不能用作整数。例如,10必须写为10.0000

注:如果是负数,请在计算前将其转换为正数,最后返回负数

分享另一种解决舍入问题的经典方法,js保留两位小数:

//四舍五入时保留两位小数(如果第二位小数为0,则保留一位小数)

函数keeptwodecimal(num){

var result=parsefloat(num);

如果(isnan(结果)){

警报('传递参数时出错,请检查!');

返回false;

}

结果=数学。四舍五入(num*100)/100;

返回结果;

}

//四舍五入保留2位小数(不足时以0为准)

函数keeptwodecimalfull(num){

var result=parsefloat(num);

如果(isnan(结果)){

警报('传递参数时出错,请检查!');

返回false;

}

结果=数学。四舍五入(num*100)/100;

var s_x=结果。tostring();

var pos_uu'decimal=s_ux.indexof('.');

如果(位置小数<;0){

pos_uu十进制=s_ux.长度;

s_x+=';

}

while(s_x.length<;=pos_decimal+2){

s_x+='0';

}

返回s_x;

}

如果您想对javascript进行系统深入的研究,可以参考经典书籍《javascript启示录》pdf原著

2、 浮点型小数点后取两位数的js方法

<;script type=“text/javascript”>;

//保留两位小数

//函数:将浮点数四舍五入到小数点后2位

函数todecimal(x){

var f=parsefloat(x);

if(isnan(f)){

回来

}

f=数学。圆形(x*100)/100;

返回f;

}

//系统保留两位小数。例如,如果2,则在2之后添加00,即2.00

函数todecimal2(x){

var f=parsefloat(x);

if(isnan(f)){

返回false;

}

var f=数学。圆形(x*100)/100;

var s=f.tostring();

var-rs=s.indexof('.');

如果(rs<;0){

rs=s.长度;

s+=';

}

而(s.length<;=rs+2){

s+='0';

}

返回s;

}

函数fomatfloat(src,pos){

返回数学。四舍五入(src*math.pow(10,pos))/math。战俘(10人,职位);

}

//四舍五入

警告(“保留两位小数:+todecimal(3.14159267));

警报(“强制保留小数点后两位:+todecimal2(3.14159267));

警报(“保留两位小数:+todecimal(3.14559267));

警报(“强制保留小数点后两位:+todecimal2(3.15159267));

警报(“保留两位小数:+fomatfloat(3.14559267,2));

警报(“保留1位小数:+fomatfloat(3.15159267,1));

//四舍五入

警报(“保留两位小数:+1000.003.tofixed(2));

警报(“保留小数点后1位:+1000.08.tofixed(1));

警报(“保留小数点后1位:+1000.04.tofixed(1));

警报(“保留小数点后1位:+1000.05.tofixed(1));

//科学计数

警报(3.1415.toexponential(2));

警报(3.1455.toexponential(2));

警报(3.1445.toexponential(2));

警报(3.1465.toexponential(2));

警觉(3.1665.toexponential(1));

//精确到n位,不包括n位

警报(“精确到小数点后第二位”+3.1415.顶部接收(2));

警报(“精确到小数点后第三位”+3.1465.3);

警报(“精确到小数点后第二位”+3.1415.顶部接收(2));

警报(“精确到小数点后第二位”+3.1455.顶部接收(2));

警报(“精确到小数点后第5位”+3.141592679287.顶部接收(5));

<;/脚本>;

使用javascript获取浮点小数点后的两位数字。例如,22.127456被视为22.13。怎么做?

1.放弃小数部分,保留整数部分

parseint(5/2)

2.总结。如果有小数,则在整数部分加1

数学ceil(5/2)

3.四舍五入

数学圆形(5/2)

4.四舍五入

数学楼层(5/2)

替代方法

1.最愚蠢的方法

函数get()

{

var s=22.127456+“”;

var str=s.substring(0,s.indexof(“.”)+3);

警报(str);

}

2.正则表达式运行良好

<;script type=“text/javascript”>;

onload=函数(){

var a=“23.456322”;

风险值重新计算;

变量re=/([0-9]+[0-9]{2})[0-9]*/;

重新=a.替换(重“$1”);

警惕(重新);

}

<;/脚本>;

他更聪明

<;脚本>;

var num=22.127456;

警报(数学轮数(num*100)/100);

<;/脚本>;

4.可以使用新事物但支持ie5+的朋友。

5.2保留小数点后两位(必填)

对于小数位数大于2位的,可以使用上述函数,但对于小数位数小于2位的,如changetwodecimal(3.1),将返回3.1。如果需要3.10的格式,则需要以下功能:

函数changetwodecimal_uf(x){

var f_x=parsefloat(x);

if(isnan(f_x)){

警报(“函数:changetwodecimal->;参数错误”);

返回false;

}

var f_x=数学。圆形(x*100)/100;

var s_x=f_x.tostring();

var pos_uu'decimal=s_ux.indexof('.');

如果(位置小数<;0){

pos_uu十进制=s_ux.长度;

s_x+=';

}

while(s_x.length<;=pos_decimal+2){

s_x+='0';

}

返回s_x;

}

3、 js保留两位小数,并自动补零

函数returnfloat(值){

var值=数学。四舍五入(浮点值)*100)/100;

var xsd=值。tostring()。拆分(“.”);

如果(xsd.length==1){

值=值。tostring()+“.00”;

返回值;

}

如果(xsd.长度>;1){

if(xsd[1]。长度<;2){

值=值。tostring()+“0”;

}

返回值;

}

}

4、 js为整数,js为绝对值,js为四舍五入(可保留两位小数)

js取整数,js取绝对值,js取整(可以保留两位小数)。功能如下:

<;脚本语言=javascript>;

<;!--

函数jsmath()

{

文件写(数学地板(5.80)+“<;br>;”)//四舍五入

文件写(数学四舍五入(5.80)+“<;br>;”)//四舍五入到最接近的整数

文件写(数学四舍五入((5.80*100)/100)+“<;br>;”)//四舍五入至小数点后两位

文件写(math.ceil(5.10)+“<;br>;”)//使聚集

文件写(math.abs(-5.80)+“<;br>;”)//取绝对值

文件写(数学最大值(55,58)+“<;br>;”)//返回两个值的最大数目

文件写(math.min(55,58)+“<;br>;”)//返回两个值中的最小值

}

--&燃气轮机;

<;/脚本>;

<;部门>;

<;脚本>;jsmath();<;/脚本>;

<;/部门>;

总结

js数据格式在web前端开发中经常遇到,尤其是当数据类型为float时,需要进行特殊处理,如保留两位小数,小数点后的数据是否需要舍入等。以下是几种实现数据格式化并保留两位小数的方法

1.js附带了tofixed()方法。tofixed()方法可以将数字四舍五入为具有指定小数位的数字

语法:numberobjecttofixed(num),mun是必需的参数,即指定小数位数。它是介于0和20之间的值,包括0和20。一些实现可以支持更大范围的值。如果省略此参数,它将被0替换,因此tofixed()方法可以保留2位、3位、4位等,具体取决于num的值

返回值:返回numberobject的字符串表示形式。不使用指数计数法。小数点后有固定的num位数。如有必要,将数字四舍五入或用0进行补充,以使其达到指定长度。如果num大于le+21,则该方法仅调用numberobject tostring(),返回以指数计数表示的字符串

当num太小或太大时引发异常rangeerror。介于0和20之间的值不会引发异常。一些实现支持更大或更小的值范围

当调用方法的对象不是number时引发typeerror异常。

<;script type=“text/javascript”>;

var num=新数字(13.376954);

文件写入(num.tofixed(2))

<;/脚本>;

产出:13.38

2.自定义函数实现小数保留和舍入。

函数roundfund(numberround,rounddigit){//将要保留的位数舍入

如果(numberround>;=0){

var tempnumber=parseint((numberround*math.pow(10,rounddigit)+0.5))/math。功率(10,整数);

返回数字;

}否则{

numberround1=-numberround;

var tempnumber=parseint((numberround1*math.pow(10,rounddigit)+0.5))/math。功率(10,整数);

return-tempnumber;

}

}

然后调用roundfun()函数。如循环基金('13.376954',2);当然,返回的结果与第一个方法相同

3.通过函数截取,可以截取到小数点后的前几位。当然,这种方法没有舍入。

<;script type=“text/javascript”>;

tmp=13.376954〃

结果=tmp。substr(0,tmp.indexof(“.”)+2);

警报(结果);

<;/脚本>;

以上是reta的js方法的总结

本文网友上传,不代表本站立场,转载联系作者并注明出处