给定一个数字的字符串表示,如何在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`? */;
当前回答
typescript需要知道我们的var a将是Number | | String
export type StringOrNumber = number | string;
export function toString (v: StringOrNumber) {
return `${v}`;
}
export function toNumber (v: StringOrNumber) {
return Number(v);
}
export function toggle (v: StringOrNumber) {
return typeof v === "number" ? `${v}` : Number(v);
}
其他回答
typescript需要知道我们的var a将是Number | | String
export type StringOrNumber = number | string;
export function toString (v: StringOrNumber) {
return `${v}`;
}
export function toNumber (v: StringOrNumber) {
return Number(v);
}
export function toggle (v: StringOrNumber) {
return typeof v === "number" ? `${v}` : Number(v);
}
Typescript中有parseInt()、parseFloat()和Number()等内置函数,您可以使用它们。
如这里的其他答案所示,有多种方法进行转换:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
不过,我想再提一件关于parseInt的事情。
使用parseInt时,始终传递基数参数是有意义的。对于十进制转换,即10。这是参数的默认值,因此可以省略它。对于二进制,它是2,十六进制是16。实际上,2和36之间的任何基数都有效。
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
在一些JS实现中,parseInt将前导零解析为八进制:
尽管ECMAScript 3不鼓励使用ECMAScript5,但许多实现将以前导0开头的数字字符串解释为八进制。以下内容可能有八进制结果,也可能有十进制结果。始终指定基数以避免这种不可靠的行为。-多目标网络
代码变得更清晰是指定基数参数的一个很好的副作用。
因为parseFloat只解析基数为10的数字表达式,所以这里不需要基数参数。
更多信息:
为什么我们需要使用基数?(SO问题)所以回答“parseInt()和Number()之间的区别是什么?”
最简单的方法是使用+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
使用=>convertstring(“10.00”)调用函数
parseFloat(string)=>可用于转换为float,toFixed(4)=>小数位数
parseInt(str)=>可用于转换为整数
convertstring(string){
let number_parsed: any = parseFloat(string).toFixed(4)
return number_parsed
}