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的准确一些!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)