Dada uma representação de seqüência de caracteres de um número, como posso convertê-lo para number
digitar TypeScript?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
typescript
Paul0515
fonte
fonte
console.log(typeof <number><any>"1", typeof Number("1"))
será impressostring number
.Respostas:
Exatamente como em JavaScript , você pode usar os
parseInt
ouparseFloat
funções, ou simplesmente usar o unário+
operador:Todas as técnicas mencionadas terão digitação correta e analisarão corretamente cadeias inteiras decimais simples
"123"
, como , mas se comportarão de maneira diferente para vários outros casos (possivelmente"123.45"
) e casos de canto (comonull
) possíveis .Tabela retirada desta resposta
fonte
A maneira Typcript para fazer isso seria:
conforme respondido aqui: https://stackoverflow.com/a/23440948/2083492
fonte
isNaN
funçãolet a = Number('x') || 0;
-Number('x')
retornariaNaN
, que é "falsey". Portanto,a
seria atribuído0.
muito mais limpo e sem dúvida (um pouco) mais rápido do que usar a declaração ternária e analisar duas vezes.Para nossos colegas usuários angulares:
Dentro de um template ,
Number(x)
eparseInt(x)
gera um erro, e+x
não tem efeito. A transmissão válida seráx*1
oux/1
.fonte
Number
ocorre porque não está no escopo da avaliação. Você pode escreverclass MyComponent { Number = Number; }
para usá-lo.Como mostrado por outras respostas aqui, existem várias maneiras de fazer a conversão:
Eu gostaria de mencionar mais uma coisa
parseInt
.Ao usar
parseInt
, faz sentido sempre passar o parâmetro radix . Para conversão decimal, é isso10
. Este é o valor padrão para o parâmetro, e é por isso que ele pode ser omitido. Para binário, é um2
e16
para hexadecimal. Na verdade, qualquer mistura entre 2 e 36, inclusive.A
parseInt
função, assim, analisa cadeias de caracteres para convertê-las em números. Em algumas implementações de JS,parseInt
analisa zeros à esquerda como octal:O fato de o código ficar mais claro é um bom efeito colateral da especificação do parâmetro radix.
Como
parseFloat
apenas analisa expressões numéricas no radix 10, não há necessidade de um parâmetro radix aqui.Mais sobre isso:
fonte
Explicando o que Ryan disse, o TypeScript abrange os idiomas JavaScript em geral.
Todos os detalhes detalhados interessantes em JavaScript Type Conversion .
fonte
Você pode seguir uma das seguintes maneiras.
fonte
Conversão de string para número:
No TypeScript, convertemos uma string em um número das seguintes maneiras:
ParseInt()
: Esta função recebe 2 argumentos, o primeiro é uma string para analisar. O segundo é a raiz (a base nos sistemas de números matemáticos, por exemplo, 10 para decimal e 2 para binário). Em seguida, ele retorna o número inteiro, se o primeiro caractere não puder ser convertido em um número,NaN
será retornado.ParseFloat()
: Aceita como argumento o valor que queremos analisar e retorna um número de ponto flutuante. Se o valor não puder ser convertido em um número,NaN
será retornado.+
operador: o operador, quando usado adequadamente, pode coagir um valor de sequência em um número.Exemplos:
Qual usar?
ParseInt()
quando desejar que uma sequência seja convertida em um número inteiro . No entanto, o tipo de dados ainda é flutuante, pois todos os valores numéricos são valores de ponto flutuante no TS . Também use esse método quando precisar especificar a raiz do número que deseja analisar.ParseFloat()
quando você precisar analisar uma sequência em um número de ponto flutuante .+
operador antes de uma sequência para coagi-la a um número de ponto flutuante . A vantagem disso é que a sintaxe é muito curta.fonte
A maneira mais fácil é usar + strVal ou Number (strVal)
Exemplos:
fonte
Existem funções embutidas como
parseInt()
,parseFloat()
eNumber()
no Typescript, você pode usá-las.fonte
Chame a função com => converttstring ('10 .00 ')
parseFloat (string) => Pode ser usado para converter em float, toFixed (4) => em quantos decimais
parseInt (str) => Pode ser usado para converter em número inteiro
fonte
Ferramenta de conversão de números online
Number Converter
fonte
Existem três maneiras
fonte
Muitos de vocês estão tendo problemas para converter tipos de dados difíceis de resolver nas situações de programação iônica, porque essa linguagem é nova, aqui vou detalhar instruções para o usuário saber como converter tipos iônicos em dados de cadeia de caracteres digite inteiro.
Em linguagens de programação como java, php, c, c ++, ... tudo pode mover dados facilmente, então no ionic também pode criar para nós a conversão de dados também é uma maneira fácil, inclusive em outras linguagens de programação.
fonte
se você está falando apenas de tipos, como outras pessoas disseram, parseInt () etc retornará o tipo correto. Além disso, se por algum motivo o valor puder ser um número ou uma sequência e você não quiser chamar parseInt (), as expressões typeof também serão convertidas no tipo correto:
fonte
Aqui está uma versão modificada da função StrToNumber. Como antes,
Essa resposta é uma solução possível mais adequada à pergunta inicial do que no post anterior.
fonte
datilografado precisa saber que o nosso
var a
éter seráNumber || String
fonte
Você sempre pode usar a opção de transmissão. Primeiro, você deve converter seu objeto para o tipo "desconhecido" e depois convertê-lo em um tipo de objeto esperado.
fonte
console.log(typeof <number><unknown>"1", typeof Number("1"))
irá imprimirstring number
.