Sen*_*sei -2 javascript jquery rounding
有没有办法将数字四舍五入到最小2位小数,我的JavaScript。
例:
依此类推...舍入到至少2位小数。我可以为此使用jQuery。
这听起来像你说你要在必要时有至少两个小数位(即使它们是零),并涨转成数字串四(他们不是零)。如果是这样的话:
对于所有现代浏览器:请参阅 Marek 的回答。
如果您不能依赖Intl:我唯一能想到的就是使用toFixed(4)然后删除最多两个尾随零:
function format(num) {
var str = num.toFixed(4);
return str.replace(/0{1,2}$/, '');
}
function test(test) {
var result = format(test.num);
console.log(
test.num,
"=>",
result,
result == test.result ? "- Pass" : "- Fail"
);
}
[
{num: 10, result: "10.00"},
{num: 20.10, result: "20.10"},
{num: 30.1234, result: "30.1234"},
{num: 40.123456, result: "40.1235"},
{num: 50.1200, result: "50.12"},
{num: 60.123, result: "60.123"}
].forEach(test);Run Code Online (Sandbox Code Playgroud)
小智 5
如果您不限于过时的浏览器,我建议您使用此智能功能:
var fmtr = new Intl.NumberFormat('us-us', {
style: 'decimal',
useGrouping: false,
minimumFractionDigits: 2,
maximumFractionDigits: 4
});
function test(test) {
var result = fmtr.format(test.num);
console.log(
test.num,
"=>",
result,
result == test.result ? "- Pass" : "- Fail"
);
}
[
{num: 10, result: "10.00"},
{num: 20.10, result: "20.10"},
{num: 30.1234, result: "30.1234"},
{num: 40.123456, result: "40.1235"},
{num: 50.1200, result: "50.12"},
{num: 60.123, result: "60.123"}
].forEach(test);Run Code Online (Sandbox Code Playgroud)
参考文献: