其他分享
首页 > 其他分享> > JS 四舍六入五成双

JS 四舍六入五成双

作者:互联网

JS 四舍六入五成双

 

规则:

四舍六入五考虑,
五后非零就进一,
五后皆零看奇偶,
五前为偶应舍去,
五前为奇要进一。

 

function evenRound(num, decimalPlaces) {
 
    var d = decimalPlaces || 0;
    var m = Math.pow(10, d);
    var n = +(d ? num * m : num).toFixed(8); // Avoid rounding errors
    var i = Math.floor(n), f = n - i;
    var e = 1e-8; // Allow for rounding errors in f
    var r = (f > 0.5 - e && f < 0.5 + e) ?
                ((i % 2 == 0) ? i : i + 1) : Math.round(n);
    return d ? r / m : r;
}

 

 

 

 

 

ASP中其实有两个可以用作四舍五入的函数:Round函数和FormatNumber函数。

Round 函数

返回按指定位数进行四舍五入的数值。

Round(expression[, numdecimalplaces])

参数

Expression
必选项。数值表达式 被四舍五入。

Numdecimalplaces
可选项。数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数。

FormatNumber函数

FormatNumber(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]]。

参数

Expression
必选项。

Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
LeadingDigit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
Paren 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
GroupDigit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。

示例

EXAMPLE: <%=Round(3.14159, 2)%>
RESULT: 3.14

EXAMPLE: <%=FormatNumber(45.324567, 3)%>
RESULT: 45.325

区别

虽然Round函数叫做四舍五入函数,但是他所说的四舍五入与我们平常说的并不一样,我们平时的是:大于等于5的数值入、小于5的数值舍。但是,Round函数却是大于5的数值入、小于5的数值舍、等于5的话奇数入偶数舍。

示例

Round(1.5)
Round(2.5)
Round(3.5)
Round(4.5)

FormatNumber(1.5,0)
FormatNumber(2.5,0)
FormatNumber(3.5,0)
FormatNumber(4.5,0)

Round的结果是:
2
2
4
4

FormatNumber的结果是:
2
3
4
5

看样子,如果真的要使用四舍五入的函数,还是用FormatNumber的准确一些!

标签:六入,四舍五入,函数,FormatNumber,数值,JS,var,Round,四舍
来源: https://www.cnblogs.com/sun45/p/16188175.html