所属分类:web前端开发
字符串和数字都是 TypeScript 中的原始数据类型。有时,我们得到的是字符串格式的数字,我们需要将字符串值转换为数字来对该值进行数学运算。如果我们对字符串值执行数学运算,则会给出奇怪的结果。例如,向数字字符串添加另一个数字值会将数字附加到字符串,而不是相加。
我们将学习使用 TypeScript 中的各种方法和途径将字符串转换为数值。
因此,我们需要在 TypeScript 中将字符串转换为数字。
一元运算符采用单个操作数。在计算操作数之前,它将操作数转换为数值。因此,我们可以使用它来将字符串转换为数值。
用户可以按照以下语法将字符串转换为数字值。
let numberValue: number = +stringNmber;
在上面的语法中,我们使用 stringNumber 变量作为一元“+”运算符的操作数。
在此示例中,stringNumber 变量包含字符串格式的数字值。之后,我们使用一元‘+’运算符将 stringNumber 字符串值转换为数字,并将计算值存储在 numberValue 变量中。
在输出中,用户可以观察到 numberValue 变量的类型是 number。
let stringNmber: string = "124354656"; let numberValue: number = +stringNmber; console.log("The type of numberValue variable is " + typeof numberValue); console.log("The value of the numberValue variable is " + numberValue);
编译时,它将生成以下 JavaScript 代码 -
var stringNmber = "124354656"; var numberValue = +stringNmber; console.log("The type of numberValue variable is " + typeof numberValue); console.log("The value of the numberValue variable is " + numberValue);
上述代码将产生以下输出 -
The type of numberValue variable is number The value of the numberValue variable is 124354656
Number 是 TypeScript 中的一个对象,我们可以使用它作为构造函数来创建 Number 对象的实例。
我们可以以数字或字符串格式传递一个数字值作为 Nuber() 构造函数参数。
用户可以按照下面的语法使用Number()构造函数将字符串转换为数字值。
let num: number = Number(str);
在上面的语法中,我们将字符串格式的数字值作为 Number() 构造函数的参数传递。
在此示例中,我们创建了 string1 和 string2 变量,其中包含字符串格式的数值。之后,我们使用 Number() 构造函数将这两个变量转换为数字,并将它们存储在 number1 和 number2 变量中。
将字符串值转换为数字后,用户可以在输出中观察其类型。
let string1: string = "35161"; let string2: string = "65986132302"; let number1: number = Number(string1); let number2: number = Number(string2); console.log("The value of number1 is " + number1); console.log("The type of number1 is " + typeof number1); console.log("The value of number2 is " + number2); console.log("The type of number2 is " + typeof number2);
编译时,它将生成以下 JavaScript 代码 -
var string1 = "35161"; var string2 = "65986132302"; var number1 = Number(string1); var number2 = Number(string2); console.log("The value of number1 is " + number1); console.log("The type of number1 is " + typeof number1); console.log("The value of number2 is " + number2); console.log("The type of number2 is " + typeof number2);
上述代码将产生以下输出 -
The value of number1 is 35161 The type of number1 is number The value of number2 is 65986132302 The type of number2 is number
TypeScript 的 parseInt() 方法从数字字符串或数字本身中提取整数值,并删除数字的小数部分。
用户可以按照以下语法使用 TypeScript 中的 parseInt() 方法将字符串转换为数字。
let num: number = parseInt(str);
在上面的语法中,我们将字符串格式的数字值作为 parseInt() 方法参数传递。
在下面的示例中,convertNumToString() 函数将字符串转换为数字并返回数字值。在函数中,我们使用了 parseInt() 方法从字符串中提取数字。
我们通过以字符串格式传递不同的数字作为参数来调用convertNumToString()函数两次,用户可以在输出中观察转换后的数字值。
let stringNumber: string = "12234567998"; let stringNumber2: string = "34345465.4333"; function convertNumToString(str: string) { let num: number = parseInt(str); return num; } console.log( "After converting the " + stringNumber + " to number value is " + convertNumToString(stringNumber) ); console.log( "After converting the " + stringNumber2 + " to number value is " + convertNumToString(stringNumber2) );
编译时,它将生成以下 JavaScript 代码 -
var stringNumber = "12234567998"; var stringNumber2 = "34345465.4333"; function convertNumToString(str) { var num = parseInt(str); return num; } console.log("After converting the " + stringNumber + " to number value is " + convertNumToString(stringNumber)); console.log("After converting the " + stringNumber2 + " to number value is " + convertNumToString(stringNumber2));
上述代码将产生以下输出 -
After converting the 12234567998 to number value is 12234567998 After converting the 34345465.4333 to number value is 34345465
parseFloat() 方法与 parseInt() 方法执行相同的工作,将字符串转换为数字。唯一的区别是它不会删除小数点后的值,这意味着它从字符串中提取浮点数值,而 parseInt() 方法从字符串中提取整数值。
用户可以按照下面的语法使用parseFloat()方法将字符串转换为数字。
let numberValue: number = parseFloat(stringValue);
在上面的语法中,stringValue是字符串格式的浮点数。
在下面的示例中,stringToFloat() 函数演示了如何使用 parseFloat() 方法从给定字符串中提取浮点数值。我们已经调用了 stringToFloat() 函数三次。
在第三次调用 stringToFloat() 函数时,我们将带有数字和其他字符的字符串作为参数传递给它。在输出中,我们可以看到它从字符串中删除了字符并仅提取浮点数值。
let strFloat: string = "34356757"; let strFloat2: string = "7867.465546"; function stringToFloat(stringValue: string) { let numberValue: number = parseFloat(stringValue); console.log( "The " + stringValue + " value after converting to the number is " + numberValue ); } stringToFloat(strFloat); stringToFloat(strFloat2); stringToFloat("232343.43434fd");
编译时,它将生成以下 JavaScript 代码 -
var strFloat = "34356757"; var strFloat2 = "7867.465546"; function stringToFloat(stringValue) { var numberValue = parseFloat(stringValue); console.log("The " + stringValue + " value after converting to the number is " + numberValue); } stringToFloat(strFloat); stringToFloat(strFloat2); stringToFloat("232343.43434fd");
上述代码将产生以下输出 -
The 34356757 value after converting to the number is 34356757 The 7867.465546 value after converting to the number is 7867.465546 The 232343.43434fd value after converting to the number is 232343.43434
在本教程中,用户学习了将字符串格式给出的数字值转换为实际数字的四种方法。将字符串转换为数字的最佳方法是使用一元运算符,它比其他运算符更省时。但是,用户也可以使用 Number() 构造函数。