Tengo un cuadro de texto que tendrá una cadena de moneda y luego tendré que convertir esa cadena a un doble para realizar algunas operaciones.
"$1,100.00"
→ 1100.00
Esto debe ocurrir en todo el lado del cliente. No tengo más remedio que dejar la cadena de moneda como una cadena de moneda como entrada, pero necesito convertirla / convertirla en un doble para permitir algunas operaciones matemáticas.
javascript
jquery
Bobby Borszich
fuente
fuente
.00
final. De lo contrario, representaciones válidas de moneda como "$ 1100" y "$ 1100". se reducirá en dos órdenes de magnitud.contabilidad.js es el camino a seguir. Lo usé en un proyecto y tuve muy buena experiencia usándolo.
Lo puedes encontrar en GitHub
fuente
Use una expresión regular para eliminar el formato (dólar y coma), y use parseFloat para convertir la cadena en un número de coma flotante.
fuente
Sé que esta es una vieja pregunta, pero quería dar una opción adicional.
JQuery Globalize brinda la capacidad de analizar un formato específico de cultura en un flotante.
https://github.com/jquery/globalize
Dada una cadena "$ 13,042.00", y Globalize configurado en en-US:
Puede analizar el valor flotante de la siguiente manera:
Esto te dará:
Y te permite trabajar con otras culturas.
fuente
Sé que esta es una vieja pregunta, pero la respuesta de CMS parece tener una pequeña falla: solo funciona si el formato de moneda usa "". como separador decimal Por ejemplo, si necesita trabajar con rublos rusos, la cadena se verá así: "1 000,00 rub".
Mi solución es mucho menos elegante que la de los CMS, pero debería funcionar.
Suposiciones
La expresión regular puede incluso manejar algo como "1,999 dólares y 99 centavos", aunque no es una característica prevista y no se debe confiar en ella.
Espero que esto ayude a alguien.
fuente
Este ejemplo funciona bien
http://jsbin.com/ecAviVOV/2/edit
fuente
// "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/
fuente
Sé que has encontrado una solución a tu pregunta, solo quería recomendarte que quizás mires el siguiente plugin jQuery más extenso para formatos de números internacionales:
Formateador internacional de números
fuente
Esta es mi funcion. Funciona con todas las monedas.
Uso:
toFloat("$1,100.00")
otoFloat("1,100.00$")
fuente
Puedes probar esto
fuente
la salida es: Rs. 39,00
fuente
He probado más de tres símbolos de moneda. También puedes hacerlo para otros.
La expresión regular anterior eliminará todo lo que no sea un dígito o un punto. Por lo tanto, puede obtener la cadena sin el símbolo de moneda, pero en el caso de "Fr. 150.00" si consuela la salida, obtendrá el precio como
que está mal, así que verifica el índice de "." luego divídalo y obtenga el resultado adecuado.
fuente
fuente
fuente
Esta función debería funcionar independientemente de la configuración regional y de moneda:
Esto supone que conoce el carácter del punto decimal (en mi caso, la configuración regional se establece desde PHP, así que lo entiendo
<?php echo cms_function_to_get_decimal_point(); ?>
).fuente
Esto funcionó para mí y cubre la mayoría de los casos extremos :)
fuente