Pau*_*515 714 typescript
有人建议如何将字符串转换为TypeScript中的数字?
var aNumber : number = "1"; // --> Error
// Could this be done?
var defaultValue = 0;
var aNumber : number = "1".toInt32(defaultValue);
// Or ..
var defaultValue = 0;
var aNumber : number = StringToInt("1", defaultValue);
Run Code Online (Sandbox Code Playgroud)
更新:我做了一些额外的困惑,我想出的最好的音乐:var aNumber:number =("1")*1;
检查字符串是否为数字在此处回答:在Typescript中,如何检查字符串是否为数字.
Rya*_*ugh 1091
您可以使用parseInt或parseFloat函数,或只使用一元运算+符:
var x = "32";
var y = +x; // y: number
Run Code Online (Sandbox Code Playgroud)
Phi*_*nci 953
Typescript的方法是:
Number('1234') // 1234
Number('9BX9') // NaN
Run Code Online (Sandbox Code Playgroud)
在这里回答:https://stackoverflow.com/a/23440948/2083492
phi*_*294 87
对于我们的Angular用户:
在模板中,Number(x)并parseInt(x)抛出错误,并且+x没有任何效果.有效的铸造将是x*1或x/1.
小智 49
在谈到Ryan所说的内容时,TypeScript总体上包含了JavaScript习惯用法.
var n = +"1"; // the unary + converts to number
var b = !!"2"; // the !! converts truthy to true, and falsy to false
var s = ""+3; // the ""+ converts to string via toString()
Run Code Online (Sandbox Code Playgroud)
JavaScript类型转换中所有有趣的深入细节.
Fab*_*uer 46
如此处的其他答案所示,有多种方法可以进行转换:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
Run Code Online (Sandbox Code Playgroud)
我还想提一件事parseInt.
使用时parseInt,总是传递radix参数是有意义的.对于十进制转换,即10.这是参数的默认值,这就是可以省略的原因.对于二进制,它是a 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
Run Code Online (Sandbox Code Playgroud)
该parseInt函数解析字符串以将其转换为数字.在一些JS实现中,parseInt将前导零解析为八进制:
虽然ECMAScript 3不鼓励并且ECMAScript 5禁止,但许多实现解释以前导0开头为八进制的数字字符串.以下可能有八进制结果,或者可能有十进制结果.始终指定一个基数以避免这种不可靠的行为.
- MDN
代码变得更清晰的事实是指定radix参数的一个很好的副作用.
由于parseFloat只解析基数10中的数值表达式,因此这里不需要基数参数.
更多关于此:
小智 22
您可以按照以下任一方式进行操作.
var str = '54';
var num = +str; //easy way by using + operator
var num = parseInt(str); //by using the parseInt operation
Run Code Online (Sandbox Code Playgroud)
Wil*_*een 12
在Typescript中,我们通过以下方式将字符串转换为数字:
ParseInt():此函数有2个参数,第一个是要解析的字符串。第二个是基数(数学数字系统的基数,例如10代表十进制,2代表二进制)。然后,它返回整数,如果第一个字符不能转换为数字,NaN则将返回该整数。ParseFloat():将要解析的值作为参数,并返回一个浮点数。如果该值不能转换为数字,NaN则返回。+ 运算符:适当使用运算符时,可以将字符串值强制转换为数字。/* parseInt */
// note that a whole number is returned, so it will round the number
console.log(parseInt('51.023124'));
// parseInt will 'cut off' any part of the string which is not a number
console.log(parseInt('5adfe1234'));
// When the string starts with non number NaN is returned
console.log(parseInt('z123'));
console.log('--------');
/* parseFloat */
// parses the string into a number and keeping the precision of the number
console.log(typeof parseFloat('1.12321423'));
// parseFloat will 'cut off' any part of the string which is not a number
console.log(parseFloat('5.5abc'));
console.log('--------');
/* + operator */
let myString = '12345'
console.log(typeof +myString);
let myOtherString = '10ab'
// + operator will not cut off any 'non number' string part and will return NaN
console.log(+myOtherString);Run Code Online (Sandbox Code Playgroud)
ParseInt()当你想要一个字符串转换为整数。但是,数据类型仍然是浮点数,因为所有数字值都是TS中的浮点值。当您需要指定要解析的数字的基数时,也请使用此方法。ParseFloat()时,你需要一个字符串解析为一个浮点数。+在字符串前使用运算符将其强制为浮点数。这样做的好处是语法非常短。Ben*_*Dev 12
最简单的方法是使用 +strVal 或 Number(strVal)
例子:
let strVal1 = "123.5"
let strVal2 = "One"
let val1a = +strVal1
let val1b = Number(strVal1)
let val1c = parseFloat(strVal1)
let val1d = parseInt(strVal1)
let val1e = +strVal1 - parseInt(strVal1)
let val2a = +strVal2
console.log("val1a->", val1a) // 123.5
console.log("val1b->", val1b) // 123.5
console.log("val1c->", val1c) // 123.5
console.log("val1d->", val1d) // 123
console.log("val1e->", val1e) // 0.5
console.log("val2a->", val2a) // NaN
Run Code Online (Sandbox Code Playgroud)
使用 => Convertstring('10.00') 调用该函数
parseFloat(string) => 可以用来转换为float,toFixed(4) => 转换为多少位小数
parseInt(str) => 可用于转换为整数
convertstring(string){
let number_parsed: any = parseFloat(string).toFixed(4)
return number_parsed
}
Run Code Online (Sandbox Code Playgroud)
小智 5
var myNumber: number = 1200;
//convert to hexadecimal value
console.log(myNumber.toString(16)); //will return 4b0
//Other way of converting to hexadecimal
console.log(Math.abs(myNumber).toString(16)); //will return 4b0
//convert to decimal value
console.log(parseFloat(myNumber.toString()).toFixed(2)); //will return 1200.00Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
750660 次 |
| 最近记录: |