Eu tenho uma caixa de texto que terá uma string de moeda e, em seguida, preciso convertê-la em um dobro para executar algumas operações nela.
"$1,100.00"
→ 1100.00
Isso precisa ocorrer no lado do cliente. Não tenho escolha a não ser deixar a string da moeda como uma string da moeda como entrada, mas preciso convertê-la em um dobro para permitir algumas operações matemáticas.
javascript
jquery
Bobby Borszich
fonte
fonte
.00
rastro. Caso contrário, representações válidas da moeda, como "$ 1100" e "$ 1100". será reduzido em duas ordens de magnitude.accounting.js é o caminho a percorrer. Eu usei em um projeto e tive uma experiência muito boa em usá-lo.
Você pode encontrá-lo no GitHub
fonte
Use um regex para remover a formatação (dólar e vírgula) e use parseFloat para converter a sequência em um número de ponto flutuante.`
fonte
Eu sei que esta é uma pergunta antiga, mas queria dar uma opção adicional.
O jQuery Globalize oferece a capacidade de analisar um formato específico de cultura para um float.
https://github.com/jquery/globalize
Dada uma sequência "$ 13.042,00" e Globalizar definido como en-US:
Você pode analisar o valor flutuante da seguinte maneira:
Isso lhe dará:
E permite que você trabalhe com outras culturas.
fonte
Sei que essa é uma pergunta antiga, mas a resposta do CMS parece ter uma pequena falha: só funciona se o formato da moeda usar "." como separador decimal. Por exemplo, se você precisar trabalhar com rublos russos, a sequência terá a seguinte aparência: "1 000,00 rub".
Minha solução é muito menos elegante que a do CMS, mas deve funcionar.
Premissas:
O regexp pode até lidar com algo como "1.999 dólares e 99 centavos", embora não seja um recurso pretendido e não deva ser invocado.
Espero que isso ajude alguém.
fonte
Este exemplo é executado ok
http://jsbin.com/ecAviVOV/2/edit
fonte
// "10.000.500,61 TL" price_to_number => 10000500.61
// "10000500.62" number_to_price => 10.000.500,62
JS FIDDLE: https://jsfiddle.net/Limitlessisa/oxhgd32c/
fonte
Sei que você encontrou uma solução para sua pergunta, eu só queria recomendar que talvez você veja o seguinte plugin jQuery mais extenso para formatos internacionais de números:
Formatador de números internacionais
fonte
Esta é a minha função. Funciona com todas as moedas.
Uso:
toFloat("$1,100.00")
outoFloat("1,100.00$")
fonte
Você pode tentar isso
fonte
saída é: Rs. 39,00
fonte
Testei acima de três símbolos de moeda. Você também pode fazer isso por outras pessoas.
A expressão acima da expressão regular removerá tudo que não seja um dígito ou um ponto final.
errado, verifique o índice de "." depois divida isso e obtenha o resultado adequado.
fonte
fonte
fonte
Esta função deve funcionar independentemente das configurações de localidade e moeda:
Isso pressupõe que você conhece o caractere de ponto decimal (no meu caso, a localidade é definida no PHP, então eu entendi
<?php echo cms_function_to_get_decimal_point(); ?>
).fonte
Isso funcionou para mim e abrange a maioria dos casos extremos :)
fonte