有人可以详细解释这个 JavaScript 十进制舍入函数吗?
Can someone please explain this JavaScript decimal rounding function in detail?
function Round2DecimalPlaces(l_amt) {
var l_dblRounded = +(Math.round(l_amt + "e+2") + "e-2");
return l_dblRounded;
}
小提琴:http://jsfiddle.net/1jf3ut3v/
我主要对Math.round如何与"e+2"一起工作以及将"+"号添加到Math.round的开头如何产生任何影响感到困惑。
我了解该函数的基本原理;小数点向右移动n位(由e + 2指定(,用这个新整数四舍五入,然后移回。 但是,我不确定"e"在这种情况下在做什么。
>eX
是数字文字的有效部分,表示*10^X
,就像科学记数法一样:
> 1e1 // 1 * Math.pow(10, 1)
10
> 1e2 // 1 * Math.pow(10, 2)
100
因此,转换包含此类字符序列的字符串会产生有效数字:
> var x = 2;
> Number(x + "e1")
20
> Number(x + "e2")
200
有关更多信息,请查看 MDN JavaScript 指南。
但是,当然,在您的示例中使用此符号的方式是可怕的。 将值来回转换为数字和字符串已经够糟糕的了,但它也使它更难以理解。
简单倍数或除以 10 的倍数。
单加号运算符将字符串强制转换为浮点数。(另请参阅: javascript 中的单加号运算符(
相关文章:
- 在Javascript和PHP中,十进制到RGB
- 在javascript中接受十进制数字的Regex
- 如何使用javascript验证在表单输入中避免负值、浮点值和十进制值
- JavaScript basis 是 math.pow 函数中的十进制数
- 如何使用 JavaScript 自动设置十进制值
- Javascript - 具有非线性刻度的负十进制输入范围
- 如何使用 javascript 将浮点数格式化为十进制数(7)
- 循环 += 十进制变量的 javascript 有问题
- 有人可以详细解释这个 JavaScript 十进制舍入函数吗?
- Javascript:我怎么能强迫一个有十进制值的字符串使用点而不是逗号呢
- 无需Javascript内置函数即可将十进制转换为十六进制
- 使用javascript的十进制验证未按预期工作
- 在javascript中验证十进制
- 如何在javascript中输入十进制数
- 编译为JavaScript选项,该选项使用十进制库而不是IEEE 754数学
- 更改正则表达式以查找十进制Javascript
- 将变量舍入为1个十进制javascript
- 二进制到十进制Javascript
- 检查十进制(javascript)
- 剃掉大数字的十进制 javascript