在 Javascript 中对值进行四舍五入
2011-03-28
464
我遇到过这种情况,如果用户输入例如
000.03
,我想将其显示为
.03
,而不是
000.03
。如何使用 Javascript 实现此目的?
3个回答
您可以使用正则表达式:
"000.03".replace(/^0+\./, ".");
根据您的喜好进行调整。
Álvaro González
2011-03-28
这实际上比乍一看要棘手得多。删除前导零不是标准的 Javascript。我在网上找到了这个优雅的解决方案,并对其进行了一点修改。
function removeLeadingZeros(strNumber)
{
while (strNumber.substr(0,1) == '0' && strNumber.length>1)
{
strNumber = strNumber.substr(1);
}
return strNumber;
}
userInput = "000.03";
alert(removeLeadingZeros(userInput));
Steven Ryssaert
2011-03-28
怎么样:
function showRounded(val) {
var zero = parseInt(val.split('.')[0],10) === 0;
return zero ? val.substring(val.indexOf('.')) : val.replace(/^0+/,'') );
}
console.log(showRounded('000.03')); //=> ".03"
console.log(showRounded('900.03')); //=> "900.03"
console.log(showRounded('009.03')); //=> "9.03"
或者调整 Álvaro G. Vicario 的解决方案以消除前导零:
String(parseFloat("090.03")).replace(/^0+\./, ".")
KooiInc
2011-03-28