Eu tenho o seguinte código. Gostaria de tê-lo de tal forma que, se price_result igual a um número inteiro, digamos 10, gostaria de adicionar duas casas decimais. Então 10 seria 10,00. Ou, se for igual a 10,6, seria 10,60. Nao tenho certeza de como fazer isso.
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
javascript
floating-point
user357034
fonte
fonte
var twoPlacedFloat = + parseFloat(yourString).toFixed(2)
para converter em float #Quando você usa
toFixed
, ele sempre retorna o valor como uma sequência. Isso às vezes complica o código. Para evitar isso, você pode fazer um método alternativo para Number.E use:
ou simplesmente:
fonte
0.1 + 0.2 // 0.30000000000000004
assim que eu preciso de correção para isso(0.1+0.2).round() // 0.3
Se você precisar de desempenho (como nos jogos):
É cerca de 100 vezes mais rápido que parseFloat (number.toFixed (2))
http://jsperf.com/parsefloat-tofixed-vs-math-round
fonte
number * 1
estou perdendo alguma coisa, talvez?Para retornar um número, adicione outra camada de parênteses. Mantém limpo.
fonte
var twoPlacedFloat = parseFloat(('2.00').toFixed(2))
gera erro.Se seu objetivo é analisar e sua entrada pode ser literal, você esperaria um
float
etoFixed
não fornecerá isso; portanto, aqui estão duas funções simples para fornecer isso:fonte
parseFloat(parseFloat('10.5').toFixed(2))
retorno10.5
espiado10.50
. TambémparseFloat(parseFloat('10.50').toFixed(2))
retornar10.5
teto de lodash é provavelmente o melhor
também funcionará com um número e é seguro
fonte
@sd Resposta curta: Não há como o JS ter o valor do tipo de dados Number com zeros à direita após um decimal.
Resposta longa: É propriedade
toFixed
outoPrecision
função do JavaScript retornar a String. A razão para isso é que o tipo de dados Number não pode ter um valor como a = 2,00; ele sempre remove os zeros à direita após o decimal. Essa é a propriedade embutida do Number Datatype. Então, para alcançar o acima em JS, temos 2 opçõesfonte
Por favor, use a função abaixo se você não quiser terminar.
fonte
Pelo que vale: Um número decimal é um número decimal, você o arredonda para outro valor ou não. Internamente, ele aproximará uma fração decimal de acordo com a regra da aritmética e manipulação de ponto flutuante. Ele permanece um número decimal (ponto flutuante, em JS um duplo) internamente, independentemente de quantos dígitos você deseja exibi-lo.
Para apresentá-lo para exibição, você pode escolher a precisão da exibição para o que quiser, por conversão de string. A apresentação é um problema de exibição, não de armazenamento.
fonte
Você pode usar .toFixed () para o valor flutuante de 2 dígitos
Exampale
fonte
Tente isso (veja os comentários no código):
fonte
JavaScript simples, string para flutuar:
fonte
A solução que funciona para mim é a seguinte
fonte
Inicializar o FormArray Form Builder
Criar formulário
Definir valores do formulário no Controlador de formulários
fonte
Eu tenho outra solução.
Você pode usar
round()
para fazer issotoFixed()
fonte
parseFloat()
que eu atualizei a resposta por @zsalzbankround()
nos números em js. A verdadeira questão é quem aprovou isso.