【发布时间】:2015-03-19 01:17:19
【问题描述】:
在 JavaScript 中,我想删除小数位和后面的零。
比如我原来的号码:“0.00558”,我想留下“558”。
这可能吗? (如果有这个方法,我也在使用 AngularJS)。
【问题讨论】:
-
这不是重复的,因为它不仅仅是截断非尾数部分
标签: javascript html angularjs math
在 JavaScript 中,我想删除小数位和后面的零。
比如我原来的号码:“0.00558”,我想留下“558”。
这可能吗? (如果有这个方法,我也在使用 AngularJS)。
【问题讨论】:
标签: javascript html angularjs math
您可以通过简单的正则表达式替换来做到这一点。
var number = "0.00558";
number = number.replace(/^[0\.]+/, "");
console.log(number);//number is now "558"
【讨论】:
去掉小数点:
el.value.replace(/[^\d]/g,'');
或
el.value.replace(/\./g,'');
然后得到整数值:
var el.value = parseInt(el.value);
虽然我一直使用默认基数为 10,但 @aduch 提出了一个很好的观点。 MDN 对此表示赞同。
更安全的方法是:
var el.value = parseInt(el.value,10);
来自 MDN: 如果输入字符串以“0x”或“0X”开头,则基数为 16(十六进制)并解析字符串的其余部分。 如果输入字符串以“0”开头,则基数为 8(八进制)或 10(十进制)。确切选择哪个基数取决于实现。 ECMAScript 5 指定使用 10(十进制),但并非所有浏览器都支持这一点。因此,在使用 parseInt 时始终指定一个基数。 如果输入字符串以任何其他值开头,则基数为 10(十进制)。
【讨论】:
parseInt 应该指定一个基数(即 10)