本文总结了js中保留两位小数的各种方法,并给出了每种方法的示例代码分析。如果需要这个,我们来学习一下js中保留两位小数的方法。
本文是边肖为js保留两位小数编写的函数在各种情况下的写法和遇到问题的分析,这是我们经常遇到的经典问题。以下是全部内容:
一、我们首先从经典的“四舍五入”算法讲起
1、四舍五入的情况
var num=2.446242342
num=num . to fixed(2);//输出结果是2.45
2、不四舍五入
首先,把小数放在整数边:
math . floor(15.7784514000 * 100)/100//输出结果为15.77。
第二,作为字符串,使用常规匹配:
编号(15.7784514000.toString()。match(/^\d(?\.\d{0,2})?/)//输出结果为15.77,不能用于10等整数。必须写成10.0000。
注意:如果是负数,请先转换成正数再计算,最后再转回负数。
分享另一个js解决四舍五入问题后保留两位小数的经典方法:
//四舍五入,保留2位小数(如果第二位小数为0,保留1位小数)
函数keepTwoDecimal(num) {
var result=parse float(num);
if (isNaN(result)) {
Alert('参数传递错误,请检查!');
返回false
}
结果=math . round(num * 100)/100;
返回结果;
}
//四舍五入保留2位小数(如果位数不够,用0代替)
函数keepTwoDecimalFull(num) {
var result=parse float(num);
if (isNaN(result)) {
Alert('参数传递错误,请检查!');
返回false
}
结果=math . round(num * 100)/100;
var s _ x=result . tostring();
var pos_decimal=s_x.indexOf(' . ');
if (pos_decimal 0) {
pos _ decimal=s _ x.length
s_x=' . ';
}
while(s _ x . length=pos _ decimal 2){
s _ x=“0”;
}
返回s _ x;
}
如果想对javascript有一个系统深入的学习,可以参考经典著作《JavaScript启示录》PDF原著完整版。
二、Js取float型小数点后两位数的方法
脚本类型='文本/javascript '
//保留两位小数
//函数:将浮点数四舍五入到小数点后两位。
函数到Decimal(x) {
var f=parse float(x);
if (isNaN(f)) {
返回;
}
f=math . round(x * 100)/100;
返回f;
}
//保留2位小数,比如:2,后面会跟00。也就是2.00。
函数到Decimal2(x) {
var f=parse float(x);
if (isNaN(f)) {
返回false
}
var f=math . round(x * 100)/100;
var s=f . tostring();
var rs=s.indexOf(' . ');
如果(0卢比){
rs=s .长度;
s=' . ';
}
while (s.length=rs 2) {
s=“0”;
}
返回s;
}
函数fomatFloat(src,pos){
return math . round(src * math . pow(10,pos))/Math.pow(10,pos);
}
//四舍五入
Alert('保留两位小数:' to decimal(3.14159267));
Alert('强制保留两位小数:' to decimal 2(3.14159267));
Alert('保留两位小数:' to decimal(3.14559267));
Alert('强制保留两位小数:' to decimal 2(3.15159267));
Alert('保留2位小数:' fomatFloat(3.14559267,2));
Alert('保留1位小数:' fomatFloat(3.15159267,1));
//五家六口收入
Alert('保留两位小数:' 1000.003 . to fixed(2));
Alert('保留1位小数:' 1000.08 . to fixed(1));
Alert('保留1位小数:' 1000.04 . to fixed(1));
Alert('保留1位小数:' 1000.05 . to fixed(1));
//科学计数
alert(3.1415 . to exponential(2));
alert(3.1455 . to exponential(2));
alert(3.1445 . to exponential(2));
alert(3.1465 . to exponential(2));
alert(3.1665 . to exponential(1));
//精确到n位,不包括n位
Alert('精确到小数点后第二位' 3.1415 . to precision(2));
Alert('精确到小数点后第三位' 3.1465 . to precision(3));
Alert('精确到小数点后第二位' 3.1415 . to precision(2));
Alert('精确到小数点后第二位' 3.1455 . to precision(2));
Alert('精确到小数点后第5位' 3.141592679287 . to precision(5));
/脚本
用Javascript取float类型的两位小数,比如22.127456取为22.13。怎么做?
1.舍弃小数部分,保留整数部分。
parseInt(5/2)
2.向上取整,如果有小数,整数部分加1。
数学.细胞(5/2)
3、四舍五入。
数学. round(5/2)
4、向下舍入
数学.地板(5/2)
替代方法
1.最笨的方法
函数get()
{
var s=22.127456“”;
var str=s.substring(0,s.indexOf(' . ')) 3);
alert(str);
}
2.正则表达式工作良好。
脚本类型='文本/javascript '
onload=function(){
var a=' 23.456322
var重新;
var re=/([0-9]。[0-9]{2})[0-9]*/;
aNew=a.replace(re,' $ 1 ');
警惕(从新);
}
/脚本
3.他更聪明。
脚本
var num=22.127456
alert(math . round(num * 100)/100);
/脚本
4.能使用新事物的朋友.但是需要IE5.5来支持它们。
5.js保留两位小数(必填)
对于小数点后2位以上的,使用上面的函数就可以了,但是对于小数点后2位以下的,比如:changtwodecimal(3.1),就会返回3.1。如果您必须需要像3.10这样的格式,那么您需要以下函数:
函数changtwodecimal _ f(x){
var f _ x=parse float(x);
if (isNaN(f_x)) {
alert(' function:changtwodecimal-参数错误');
返回false
}
var f _ x=math . round(x * 100)/100;
var s _ x=f _ x . tostring();
var pos_decimal=s_x.indexOf(' . ');
if (pos_decimal 0) {
pos _ decimal=s _ x.length
s_x=' . ';
}
while(s _ x . length=pos _ decimal 2){
s _ x=“0”;
}
返回s _ x;
}
三、js保留两位小数,自动补充零
函数returnFloat(value){
var值=math . round(parse float(value)* 100)/100;
var xsd=value.toString()。拆分('.');
if(xsd.length==1){
value=value . tostring(). 00 ';
返回值;
}
if(xsd.length1){
if(xsd[1].length2){
value=value . tostring()“0”;
}
返回值;
}
}
四、JS取整数,js取绝对值,js四舍五入(可保留两位小数)
Js整数,js绝对值,JS舍入(可保留两位小数)功能如下:
脚本语言=javascript
!-
函数jsMath()
{
document . write(math . floor(5.80)' br ');//舍入或向下舍入
document . write(math . round(5.80)“br”);//四舍五入,取整数
document . write(math . round((5.80 * 100)/100)“br”);//四舍五入,保留两位小数
document . write(math . ceil(5.10)“br”);//向上舍入
document . write(math . ABS(-5.80)' br ');//取绝对值
document.write(Math.max(55,58)' br ');//返回两个值的最大数量
document.write(Math.min(55,58)' br ');//返回两个值中最小的一个
}
-
/脚本
差异
script jsmath();/脚本
/div
总结
web前端开发中经常会遇到JS数据格式化,尤其是数据类型为Float时,需要特殊处理,比如保留两位小数,小数点后的数据是否需要四舍五入等等。下面介绍几种实现数据格式化并保留两位小数的方法。
1.JS自己的方法toFixed()。toFixed()方法可以将数字舍入到指定小数位数的数字。
语法:NumberObject.toFixed(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异常。
脚本类型="文本/javascript "
var num=新号码(13.376954);
document.write (num.toFixed(2))
/脚本
产量:13.38
2.自定义函数实现小数保留和四舍五入。
函数round fun (number round,round digit){//取整,保留位数为四舍五入位数。
if (numberRound=0){
var temp number=parse int((number round * math . pow(10,roundDigit) 0.5))/Math.pow(10,round digit);
返回tempNumber
}否则{
number round 1=-number round;
var temp number=parse int((number round 1 * math . pow(10,roundDigit) 0.5))/Math.pow(10,round digit);
return-tempNumber;
}
}
然后调用roundFun()函数。如roundFun('13.376954 ',2);当然,返回的结果与第一种方法相同。
3.用函数截取小数点。当然,这种方法没有四舍五入。
脚本类型="文本/javascript "
tmp=13.376954”
result=tmp.substr(0,tmp.indexOf(" . ") 2);
警报(结果);
/脚本
以上是边肖为大家整理的js保留小数点后两位的方法总结。谢谢你的支持。如果你对js保留两位小数的方法还有什么不明白的,可以在下面的留言区讨论。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。