方法一:
在JS中四舍五入的函数 toFixed(n) , n为要保留的小数位数。
n为0~20,当n超过20的时候,JS会出错。
var d=10.005;
var f=d.toFixed(2);
alert(f);
bug:
如果小数点前和要截取的前一位都是0时,不会按常理截取。
var h=0.07
h.toFixed(1)的值为0.0
如果要修改这个缺陷,可以把js中的Number类型的toFixed方法重写。
例如:
Number.prototype.toFixed = function(d)
{
var s=this+"";if(!d)d=0;
if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
{
var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;
if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
{
for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
if(a[i]==10){a[i]=0; b=i!=1;} else break;}
}
s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
};
这样就可以修复Number类型的toFixed方法。
方法二:
之前一直在用这个js自带的toFixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。
比如
Javascript代码
-
var money=0.00542;//0.006;
-
alert(Number(money).toFixed(2));
-
//0.00
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); //0.00
可以看出上面的结果是错误的,下面的方法通过巧妙的使用Math.round函数,完全可以解决数值很小时的精度问题。
Javascript代码
-
var money=0.00542;//0.006;
-
alert(Number(money).toFixed(2));
-
-
function round2(number,fractionDigits){
-
with(Math){
-
return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);
-
}
-
}
-
alert(round2(money,2));//0.01
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); function round2(number,fractionDigits){ with(Math){ return round(number*pow(10,fractionDigits))/pow(10,fractionDigits); } } alert(round2(money,2));//0.01
round 方法
返回与给出的数值表达式最接近的整数。
Math.round(number)
必选项 number 参数是要舍入到最接近整数的值。
说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。
分享到:
相关推荐
Math.round()函数是JavaScript中的一个内建函数,它的作用是将给定的小数四舍五入到最接近的整数。当小数部分小于0.5时,结果会向下取整,即去掉小数部分;而当小数部分大于或等于0.5时,结果会向上取整,即增加1到...
### JavaScript 四舍五入方法详解 #### 一、引言 在JavaScript中,处理浮点数时常常会遇到精度问题。特别是在进行数值计算时,如何有效地对浮点数进行四舍五入处理是非常重要的。本文将详细介绍几种常见的实现四舍...
### JavaScript 四舍五入并保留两位小数的方法 在JavaScript中实现四舍五五并保留两位小数的功能是常见的需求之一,特别是在处理财务数据或需要精确显示数值的应用场景下。根据提供的信息,我们将深入探讨如何在...
`Math.round()`函数是JavaScript内置的一个数学方法,用于对数字进行四舍五入处理。此函数接收一个参数,即需要进行四舍五入操作的数值。该函数会返回最接近给定数字的整数。如果参数距离两个整数等距,则会向较大的...
在某些行业,计算结果不是四舍五入,而是要求四舍六入五单双,且小数位数不固定,只明确有效位数。本程序就是应此需求而设计,输入原始数字和有效位数要求,则可返回按四舍六入后的结果。
在这个场景中,标题"四舍五入_四舍五入问题_源码"暗示我们将讨论如何在编程中实现四舍五入操作,特别是与计算苹果单价和数量相关的总价问题。描述提到“输入苹果的单价及购买的数量,计算总价,分别显示总价的总价...
如何使得js能够将数字进行四舍五入,根据需求来取相应的位数
本文实例讲述了js实现四舍五入完全保留两位小数的方法。分享给大家供大家参考,具体如下: //四舍五入保留2位小数(若第二位小数为0,则保留一位小数) function keepTwoDecimal(num) { var result = parseFloat...
JavaScript中的数学对象Math提供了一个非常实用的四舍五入方法——round函数。该函数可以用于将数字四舍五入到最接近的整数。如果小数部分是.5或更高,它会向更高的方向四舍五入;如果小于.5,则向更低的方向四舍五...
代码如下: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html> <head> <title>floatDecimal.html</title> <meta http-equiv=”keywords” content=... charset
直接看代码吧 参数一:要保留小数位的数字 参数二:要保留的位数 代码如下:function FormatNumber(srcStr,nAfterDot){ var srcStr,nAfterDot; var resultStr,nTen; srcStr = “”+srcStr+””;...
特殊数据的js四舍五入问题 2.885 7131.0 两数相乘:20572.934999999998 四舍五入后结果是:20572.93怎么回事啊? [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]比较好的解决方法: [Ctrl+A 全选 注:如需引入...
这里我们将深入探讨C#.NET和JavaScript中如何实现数字四舍五入并保留两位小数的方法。 首先,让我们看看C#.NET中的解决方案。在C#中,我们可以使用`Math.Round`方法来实现四舍五入。这个方法接受一个double类型的值...
文件列表中只有一个名为“四舍五入网页源代码.rar”的文件,这通常意味着压缩包内包含了一个完整的项目,可能包括HTML文件(如index.html)、CSS文件(如style.css)和JavaScript文件(如script.js)。这些文件将...
在JavaScript编程中,处理数字的四舍五入是一个非常常见的需求,而Math对象提供了一个名为round的函数来实现这一功能。round函数的主要作用是将给定的数字四舍五入到最接近的整数。以下是对round函数用法的详细解读...