给定一个数字的字符串表示,如何在TypeScript中将其转换为数字类型?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
给定一个数字的字符串表示,如何在TypeScript中将其转换为数字类型?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
当前回答
对于我们的其他Angular用户:
在模板中,Number(x)和parseInt(x)抛出错误,+x无效。有效铸件为x*1或x/1。
其他回答
打字方式如下:
Number('1234') // 1234
Number('9BX9') // NaN
如这里所回答的:https://stackoverflow.com/a/23440948/2083492
常量myNumber=1200;//转换为十六进制值console.log(myNumber.toString(16))//将返回4b0//其他转换为十六进制的方法console.log(Math.abs(myNumber).toString(16))//将返回4b0//转换为十进制值console.log(parseFloat(myNumber.toString()).toFixed(2))//将返回1200.00
用于将其他格式转换为十进制的参考
二进制到十进制十六进制到十进制数字转换器
在最新版本中,您可以使用,例如:
var numberString: string = "1234";
const numberValue = numberString as number;
字符串到数字的转换:
在Typescript中,我们通过以下方式将字符串转换为数字:
parseInt():此函数接受两个参数,第一个是要解析的字符串。第二个是基数(数学数字系统中的基数,例如十进制为10,二进制为2)。然后返回整数,如果第一个字符不能转换为数字,则返回NaN。parseFloat():将要解析的值作为参数,并返回一个浮点数。如果无法将值转换为数字,则返回NaN。+运算符:适当使用该运算符时,可以将字符串值强制转换为数字。
示例:
/*解析Int*///请注意,返回的是一个整数,因此它将舍入该数字console.log(parseInt('51.023124'));//parseInt将“截断”字符串中非数字的任何部分console.log(parseInt('5afe1234'));//当字符串以非数字NaN开头时,返回console.log(parseInt('z123'));console.log('--------');/*parseFloat*///将字符串解析为数字并保持数字的精度console.log(parseFloat类型('1.12321423'));//parseFloat将“截断”字符串中非数字的任何部分console.log(parseFloat('5.5abc'));console.log('--------');/*+运算符*/让myString='12345'console.log(typeof+myString);让myOtherString='10ab'//+运算符不会截断任何“非数字”字符串部分,并返回NaNconsole.log(+myOtherString);
使用哪种?
如果要将字符串转换为整数,请使用parseInt()。但是,数据类型仍然是浮点数,因为TS中的所有数值都是浮点值。当需要指定要解析的数字的基数时,也可以使用此方法。当需要将字符串解析为浮点数时,请使用parseFloat()。可以在字符串之前使用+运算符将其强制转换为浮点数。这样做的优点是语法非常简短。
就像在JavaScript中一样,您可以使用parseInt或parseFloat函数,或者简单地使用一元+运算符:
var x = "32";
var y: number = +x;
所有提到的技术都将具有正确的类型,并将正确解析简单的十进制整数字符串(如“123”),但对于其他可能的情况(如“123.45”)和角点情况(如null),它们的行为会有所不同。
此答案中的表格