如果我不知道变量是类似整数的数字还是类似小数的数字,有没有一种简单的方法将字符串解析为整数或浮点数?
a = '2'; // => parse to integer
b = '2.1'; // => parse to float
c = '2.0'; // => parse to float
d = 'text'; // => don't parse
编辑:看起来我的问题缺乏必要的上下文:我想进行一些计算,而不会失去原始格式(因此,原始格式意味着整数与浮点数。我不关心原始小数位数):
例子:
包含格式化数字的字符串(“2”)
=>解析为数字(2.0)
=>进行一些计算(2.0 + 1 = 3.0)
=>恢复“原始格式”(“3”,而不是“3.0”)
如果输入为2.0,则所需结果将为“3.0”(而不是“3”)。
parseInt()
只取其整数部分,而parseFloat()
也取其小数(以及指数)。但它们都返回相同类型(即实际上是浮点类型的数字)。请参见此处JS数字的规范:http://www.ecma-international.org/ecma-262/6.0/index.html#sec-terms-and-definitions-number-value。MSDN也在此处提到相同的事情:https://msdn.microsoft.com/library/7wkd9z69(v=vs.94).aspx#Anchor_4 - david a.isNaN(val) ? val : parseFloat(val);
- Mortimer