例如要保留2位小数: 2.4 + 4.8 = 7.20 ,但试用了网络上的几种方式得到的结果却是 7.1999
真的好郁闷....
哪位朋友有正确的 四舍五入 方法?
9 个解决方案
#1
//num表示要四舍五入的数,v表示要保留的小数位数。
function decimal(num,v)
{
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}
function decimal(num,v)
{
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}
#2
num.toFixed(2)
#3
想看看你的代码
#4
num.tofixed(2)
#5
function round(num, digit){
var multiple = Math.pow(10, digit),
_num = num * multiple;
return Math.round(_num) / multiple;
}
alert(round(2.4168, 2)); // 2.42
alert(round(2.4168, 1)); // 2.4
#6
谢谢,先试用下
#7
function format(v,p)
{
if(!(+v===v&&+p===p&&p>=0&&p<=8)) return v;
var result = '';
var r = (v*Math.pow(10,p)+.5|0)/Math.pow(10,p);
var t = ''+r;
var a = t.split('.');
result = t+((p>0&&a.length^2)?'.':'');
for(i=0;i<p-(a.length^1?a[1].length:0);i++)
{
result += '0';
}
return result;
}
//测试用例
var u = [[2.4+4.8,3],[1,2],['abc',2],[3.33333,9]];
for(n=0;n<u.length;n++)
{
alert(n+":format("+u[n][0]+","+u[n][1]+") : "+format(u[n][0],u[n][1]));
}
#8
!(+v===v&&+p===p&&p>=0&&p<=8)
能解析下 这里的3个 “=”是神马意思呢?
我还是第一次看到这样的使用方式
能解析下 这里的3个 “=”是神马意思呢?
我还是第一次看到这样的使用方式
#9
判断是否数字。p判断并不严格,按说应该是整形数字0-8,超过9位的会有精度问题
#1
//num表示要四舍五入的数,v表示要保留的小数位数。
function decimal(num,v)
{
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}
function decimal(num,v)
{
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}
#2
num.toFixed(2)
#3
想看看你的代码
#4
num.tofixed(2)
#5
function round(num, digit){
var multiple = Math.pow(10, digit),
_num = num * multiple;
return Math.round(_num) / multiple;
}
alert(round(2.4168, 2)); // 2.42
alert(round(2.4168, 1)); // 2.4
#6
谢谢,先试用下
#7
function format(v,p)
{
if(!(+v===v&&+p===p&&p>=0&&p<=8)) return v;
var result = '';
var r = (v*Math.pow(10,p)+.5|0)/Math.pow(10,p);
var t = ''+r;
var a = t.split('.');
result = t+((p>0&&a.length^2)?'.':'');
for(i=0;i<p-(a.length^1?a[1].length:0);i++)
{
result += '0';
}
return result;
}
//测试用例
var u = [[2.4+4.8,3],[1,2],['abc',2],[3.33333,9]];
for(n=0;n<u.length;n++)
{
alert(n+":format("+u[n][0]+","+u[n][1]+") : "+format(u[n][0],u[n][1]));
}
#8
!(+v===v&&+p===p&&p>=0&&p<=8)
能解析下 这里的3个 “=”是神马意思呢?
我还是第一次看到这样的使用方式
能解析下 这里的3个 “=”是神马意思呢?
我还是第一次看到这样的使用方式
#9
判断是否数字。p判断并不严格,按说应该是整形数字0-8,超过9位的会有精度问题