etc./StackOverFlow

TypeScript에서 문자열을 숫자로 변환하는 방법은 무엇입니까?

청렴결백한 만능 재주꾼 2023. 5. 2. 22:10
반응형

질문자 :Paul0515


숫자의 문자열 표현이 주어지면 TypeScript에서 어떻게 number

 var numberString: string = "1234"; var numberValue: number = /* what should I do with `numberString`? */;


JavaScript 에서 와 마찬가지로 parseInt 또는 parseFloat 함수를 사용하거나 단순히 단항 + 연산자를 사용할 수 있습니다.

 var x = "32"; var y: number = +x;

"123" 과 같은 간단한 십진 정수 문자열을 올바르게 구문 분석하지만 예상되는 다양한 다른 경우(예: "123.45" ) 및 코너 케이스(예: null )에 대해 다르게 작동합니다.

변환표 이 답변 에서 가져온 표


Ryan Cavanaugh

이를 수행하는 Typescript 방법은 다음과 같습니다.

 Number('1234') // 1234 Number('9BX9') // NaN

여기에 답변: https://stackoverflow.com/a/23440948/2083492


Philip

동료 Angular 사용자를 위해:

템플릿 내에서 Number(x)parseInt(x) 는 오류를 발생시키고 +x 는 효과가 없습니다. 유효한 캐스팅은 x*1 또는 x/1 입니다.


phil294

여기의 다른 답변에서 볼 수 있듯이 변환을 수행하는 방법에는 여러 가지가 있습니다.

 Number('123'); +'123'; parseInt('123'); parseFloat('123.45')

그래도 parseInt 에 대해 한 가지 더 언급하고 싶습니다.

parseInt 사용할 때는 항상 radix 매개변수를 전달하는 것이 좋습니다. 10진수 변환의 경우 10 입니다. 이것은 매개변수의 기본값이므로 생략할 수 있습니다. 2 진수의 경우 16진수의 경우 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 는 선행 0을 8진수로 구문 분석합니다 .

ECMAScript 3에서는 권장되지 않고 ECMAScript 5에서는 금지되어 있지만 많은 구현에서 선행 0으로 시작하는 숫자 문자열을 8진수로 해석합니다. 다음은 8진수 결과를 가질 수도 있고 10진수 결과를 가질 수도 있습니다. 이 신뢰할 수 없는 동작을 방지하려면 항상 기수를 지정하십시오.

엠디엔

코드가 더 명확해진다는 사실은 radix 매개변수를 지정하는 좋은 부작용입니다.

parseFloat 는 기수 10의 숫자 표현식만 구문 분석하므로 여기에 기수 매개변수가 필요하지 않습니다.

이에 대한 추가 정보:


Fabian Lauer

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()

JavaScript Type Conversion 의 모든 흥미로운 심층 세부 정보.


user2040786

다음 방법 중 하나를 따를 수 있습니다.

 var str = '54'; var num = +str; //easy way by using + operator var num = parseInt(str); //by using the parseInt operation

Labib Hussain

문자열을 숫자로 변환:

Typescript에서 다음과 같은 방법으로 문자열을 숫자로 변환합니다.

  • parseInt() : 이 함수는 2개의 인수를 취하며 첫 번째는 구문 분석할 문자열입니다. 두 번째는 기수(수학적 숫자 시스템의 기수, 예를 들어 10진수는 10, 2진수는 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);

어느 것을 사용할 것인가?

  1. 문자열을 정수 parseInt() 사용하십시오. 그러나 모든 숫자 값이 TS 의 부동 소수점 값 이기 때문에 데이터 유형은 여전히 부동 소수점입니다. 또한 구문 분석하려는 숫자의 기수를 지정해야 할 때 이 방법을 사용합니다.
  2. 문자열을 부동 소수점 숫자 로 구문 분석해야 할 때 parseFloat() 사용하십시오.
  3. + 연산자를 사용하여 부동 소수점 숫자 로 강제 변환할 수 있습니다. 이것의 장점은 구문이 매우 짧다는 것입니다.

Willem van der Veen

가장 쉬운 방법은 +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

Ben Dev

parseInt() , parseFloat()Number() 와 같은 내장 함수가 있으며 이를 사용할 수 있습니다.


Mighty God Loki

 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.00

온라인 숫자 변환 도구

숫자 변환기


user2569050

=> convertstring('10.00')을 사용하여 함수를 호출합니다.

parseFloat(string) => float로 변환하는 데 사용할 수 있습니다. toFixed(4) => 소수점 이하 자릿수

parseInt(str) => 정수로 변환하는 데 사용할 수 있습니다.

 convertstring(string){ let number_parsed: any = parseFloat(string).toFixed(4) return number_parsed }

Kanish Mathew

세 가지 방법이 있습니다

 let a = + '12'; let b = parseInt('12' , 10); // 10 means decimal number let c = Number('12');

Naveed Ullah

typescript는 우리의 var a 가 ether가 될 것이라는 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); }

Ernesto

다른 사람들이 말했듯이 parseInt() 등은 올바른 유형을 반환합니다. 또한 어떤 이유로든 값이 숫자 또는 문자열일 수 있고 parseInt()를 호출하지 않으려는 경우 typeof 표현식도 올바른 유형으로 캐스트됩니다.

 function f(value:number|string){ if(typeof value==='number'){ // value : number }else { // value : string } }

cancerbero

이온 프로그래밍 상황에서 해결하기 어려운 데이터 유형을 변환하는 데 문제가 있는 경우가 많습니다. 바로 이 언어가 새롭기 때문입니다. 여기서는 사용자가 데이터 이온 유형을 문자열 데이터로 변환하는 방법을 알아야 하는 지침을 자세히 설명하겠습니다. 정수를 입력합니다.

Java, php, c, c++ 등과 같은 프로그래밍 언어에서 ... 모두 데이터를 쉽게 이동할 수 있으며 ionic에서는 다른 프로그래밍 언어에서도 쉽게 데이터 변환을 생성할 수 있습니다.

 this.mPosition = parseInt("");

Tienanhvn

다음은 StrToNumber 함수의 수정된 버전입니다. 이전과,

  1. 숫자 값 앞이나 뒤에 선택적 기호를 표시할 수 있습니다.
  2. 문자열의 머리 또는 꼬리에 하나의 기호만 있는지 확인하기 위해 검사를 수행합니다.
  3. 오류가 발생하면 "통과" 기본값이 반환됩니다.

이 답변은 이전 게시물보다 초기 질문에 더 적합한 가능한 솔루션입니다.

 static StrToNumber(val: string, defaultVal:number = 0): number { let result:number = defaultVal; if(val == null) return result; if(val.length == 0) return result; val = val.trim(); if(val.length == 0) return(result); let sign:number = 1; // // . obtain sign from string, and place result in "sign" local variable. The Sign naturally defaults to positive // 1 for positive, -1 for negative. // . remove sign character from val. // Note, before the function returns, the result is multiplied by the sign local variable to reflect the sign. // . error check for multiple sign characters // . error check to make sure sign character is at the head or tail of the string // { let positiveSignIndex = val.indexOf('+'); let negativeSignIndex = val.indexOf('-'); let nTailIndex = val.length-1; // // make sure both negative and positive signs are not in the string // if( (positiveSignIndex != -1) && (negativeSignIndex != -1) ) return result; // // handle postive sign // if (positiveSignIndex != -1) { // // make sure there is only one sign character // if( (positiveSignIndex != val.lastIndexOf('+')) ) return result; // // make sure the sign is at the head or tail // if( (positiveSignIndex > 0) && (positiveSignIndex < nTailIndex ) ) return result; // // remove sign from string // val = val.replace("+","").trim(); } // // handle negative sign // if (negativeSignIndex != -1) { // // make sure there is only one sign character // if( (negativeSignIndex != val.lastIndexOf('-')) ) return result; // // make sure the sign is at the head or tail // if( (negativeSignIndex > 0) && (negativeSignIndex < nTailIndex ) ) return result; // // remove sign from string // val = val.replace("-","").trim(); sign = -1; } // // make sure text length is greater than 0 // if(val.length == 0) return result; } // // convert string to a number // var r = +(<any>val); if( (r != null) && (!isNaN(r)) ) { result = r*sign; } return(result); }


James W Simms

당신이 사용할 수있는 최신 버전 as , 여기에 예입니다 :

 var numberString: string = "1234"; const numberValue = numberString as number;

XDavidT

const numberString = "12" const number = ~~numberString

TheEhsanSarshar

출처 : http:www.stackoverflow.com/questions/14667713/how-to-convert-a-string-to-number-in-typescript

반응형