Dada una representación de cadena de un número, ¿cómo puedo convertirlo para number
escribir en TypeScript?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
typescript
Paul0515
fuente
fuente
console.log(typeof <number><any>"1", typeof Number("1"))
letra : imprimirástring number
.Respuestas:
Exactamente igual que en JavaScript , puede utilizar las
parseInt
oparseFloat
funciones, o simplemente utilizar el unario+
operador:Todas las técnicas mencionadas tendrán un tipeo correcto y analizarán correctamente cadenas enteras decimales simples como
"123"
, pero se comportarán de manera diferente para varios otros casos (como esperados"123.45"
) y casos de esquina (comonull
).Tabla tomada de esta respuesta
fuente
La forma mecanografiada de hacer esto sería:
como se responde aquí: https://stackoverflow.com/a/23440948/2083492
fuente
isNaN
función.let a = Number('x') || 0;
,Number('x')
volveríaNaN
, que es "falsey". Pora
lo tanto, se le asignaría0.
Mucho más limpio y posiblemente (un poco) más rápido que usar la declaración ternaria y analizar dos veces.Para nuestros compañeros usuarios de Angular:
Dentro de una plantilla ,
Number(x)
yparseInt(x)
arroja un error, y+x
no tiene ningún efecto. El lanzamiento válido seráx*1
ox/1
.fuente
Number
no está en el alcance de la evaluación. Puedes escribirclass MyComponent { Number = Number; }
para usarlo.Como se muestra en otras respuestas aquí, hay varias formas de hacer la conversión:
Sin
parseInt
embargo, me gustaría mencionar una cosa más .Cuando se usa
parseInt
, tiene sentido pasar siempre el parámetro radix . Para la conversión decimal, eso es10
. Este es el valor predeterminado para el parámetro, por lo que puede omitirse. Para binario, es un2
y16
para hexadecimal. En realidad, cualquier mezcla entre 2 y 36 obras incluidas.La
parseInt
función, bueno, analiza cadenas para convertirlas en números. En algunas implementaciones de JS,parseInt
analiza los ceros iniciales como octales:El hecho de que el código se aclare es un buen efecto secundario de especificar el parámetro radix.
Como
parseFloat
solo analiza las expresiones numéricas en la raíz 10, no hay necesidad de un parámetro de raíz aquí.Más sobre esto:
fuente
Explicando lo que dijo Ryan, TypeScript adopta los modismos de JavaScript en general.
Todos los detalles en profundidad interesantes en JavaScript Type Conversion .
fuente
Puede seguir cualquiera de las siguientes formas.
fuente
Conversión de cadena a número:
En Typecript, convertimos una cadena en un número de las siguientes maneras:
ParseInt()
: Esta función toma 2 argumentos, el primero es una cadena para analizar. El segundo es la raíz (la base en sistemas de numeración matemática, por ejemplo, 10 para decimal y 2 para binario). Luego devuelve el número entero, si el primer carácter no se puede convertir en un número,NaN
se devolverá.ParseFloat()
: Toma como argumento el valor que queremos analizar y devuelve un número de coma flotante. Si el valor no se puede convertir a un número,NaN
se devuelve.+
operador: El operador, cuando se usa adecuadamente, puede obligar a un valor de cadena a un número.Ejemplos:
¿Cuál usar?
ParseInt()
cuando desee que una cadena se convierta en un entero . Sin embargo, el tipo de datos sigue siendo flotante, ya que todos los valores numéricos son valores de coma flotante en TS . También use este método cuando necesite especificar la raíz del número que desea analizar.ParseFloat()
cuando necesite analizar una cadena en un número de coma flotante .+
operador antes de una cadena para forzarlo a un número de coma flotante . La ventaja de esto es que la sintaxis es muy corta.fuente
La forma más fácil es usar + strVal o Number (strVal)
Ejemplos:
fuente
Hay funciones incorporadas como
parseInt()
,parseFloat()
yNumber()
en Typecript, puede usarlas.fuente
Llame a la función con => convertstring ('10 .00 ')
parseFloat (string) => Se puede usar para convertir a float, toFixed (4) => a cuántos decimales
parseInt (str) => Se puede usar para convertir a entero
fuente
Herramienta de conversión de números en línea
Convertidor de números
fuente
Hay tres maneras
fuente
Hay muchos de ustedes que tienen problemas para convertir tipos de datos que son difíciles de resolver en las situaciones de programación iónica, porque este mismo lenguaje es nuevo, aquí detallaré instrucciones para que el usuario sepa cómo convertir tipos de datos iónicos en datos de cadena tipo entero.
En lenguajes de programación como java, php, c, c ++, ... todos pueden mover datos fácilmente, luego en iónico también pueden crearnos la conversión de datos también es una manera fácil, no menos importante en otros lenguajes de programación.
fuente
si está hablando solo de tipos, como dijeron otras personas, parseInt (), etc. devolverá el tipo correcto. Además, si por algún motivo el valor puede ser tanto un número como una cadena y no desea llamar a parseInt (), las expresiones typeof también se convertirán al tipo correcto:
fuente
Aquí hay una versión modificada de la función StrToNumber. Como antes,
Esta respuesta es una posible solución que se adapta mejor a la pregunta inicial que mi publicación anterior.
fuente
mecanografiado necesita saber que nuestro
var a
va a ser éterNumber || String
fuente
Siempre puedes usar la opción de enviar. Primero, debe convertir su objeto a tipo "desconocido" y luego convertirlo en un tipo de objeto esperado.
fuente
console.log(typeof <number><unknown>"1", typeof Number("1"))
imprimirástring number
.