给定一个数字的字符串表示,如何在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`? */;
当前回答
有三种方法
let a = + '12';
let b = parseInt('12' , 10); // 10 means decimal number
let c = Number('12');
其他回答
最简单的方法是使用+strVal或Number(strVal)
示例:让strVal1=“123.5”让strVal2=“一”设val1a=+strVal1设val1b=数字(strVal1)let val1c=parseFloat(strVal1)let val1d=parseInt(strVal1)让val1e=+strVal1-parseInt(strVal1)设val2a=+strVal2console.log(“val1a->”,val1a)//123.5console.log(“val1b->”,val1b)//123.5console.log(“val1c->”,val1c)//123.5console.log(“val1d->”,val1d)//123console.log(“val1e->”,val1e)//0.5console.log(“val2a->”,val2a)//NaN
如果你只是在谈论类型,就像其他人所说的那样,parseInt()等将返回正确的类型。此外,如果由于任何原因,该值可能是数字或字符串,并且您不想调用parseInt(),则typeof表达式也将强制转换为正确的类型:
function f(value:number|string){
if(typeof value==='number'){
// value : number
}else {
// value : string
}
}
常量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;
对于我们的其他Angular用户:
在模板中,Number(x)和parseInt(x)抛出错误,+x无效。有效铸件为x*1或x/1。