Estoy tratando de analizar dos valores de una cuadrícula de datos.
Los campos son numéricos, y cuando tienen una coma (por ejemplo, 554,20), no puedo obtener los números después de la coma.
He intentado parseInt
y parseFloat
. ¿Cómo puedo hacer esto?Cómo convertir cadenas en float en JavaScript?
Respuesta
Si están destinados a ser los valores separados, intente esto:
var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])
Si están destinados a ser un solo valor (como en francés, donde la mitad está escrito 0,5)
var value = parseFloat("554,20".replace(",", "."));
¿Qué pasa si tiene una coma utilizada como mil separador? P. ej. 1234 escrito como 1,234 –
Puedes quitar la coma y luego analizarla. (por ejemplo, reemplázalo con "") –
no es muy seguro, como sconto = parseFloat ("5,, 5" .replace (",", ".")); devuelve 5 para creer que es un número válido, pero pierde la .5 o puede considerar que no es un número válido – max4ever
Reemplace la coma con un punto.
Esto sólo devolverá 554:
var value = parseFloat("554,20")
Esto devolverá 554.20:
var value = parseFloat("554.20")
Así que al final, sólo tiene que utilizar:
var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))
No se olvide que parseInt()
solo se debe usar para analizar enteros (sin puntos flotantes). En su caso, solo devolverá 554. Además, al llamar a parseInt() en un flotante no se redondeará el número: ocupará su piso (entero inferior más cercano).
Qué pasa con el "" ¿Separador de miles? Como 4.554,20, ¿qué devolvería ...? –
¿Alguna vez has intentado hacer esto? : p
var str = '3.8';ie
alert(+(str) + 0.2);
+ (cadena) fundirán la cuerda en el flotador.
¡Práctico!
lo que a fin de resolver su problema, usted puede hacer algo como esto:
var floatValue = +(str.replace(/,/,'.'));
Me gusta mucho la solución '+ (str)' - 'parseFloat' ignora los caracteres no válidos después del número,' + (str) 'devuelve' NaN' en esos casos, que es exactamente lo que necesito. – Alex
Esta parece ser la mejor respuesta, similar a la fundición a un int cambiando el signo dos veces con ~, como en ~~ "45.2" = 45 –
Si extiende objeto String como esto ..
String.prototype.float = function() {
return parseFloat(this.replace(',', '.'));
}
.. se puede ejecutar como esto
"554,20".float()
> 554.20
obras con puntos, así
"554.20".float()
> 554.20
typeof "554,20".float()
> "number"
Aunque por lo general se considera mala forma de modificar los prototipos de objetos de base. ¿Y si otro marco también intentara hacer eso pero la funcionalidad era diferente? – phreakhead
@GusDeCool o cualquier otra persona tratando de reemplazar más de un separadores de miles, una forma de hacerlo es reemplazar un mundial de expresiones regulares: /foo/g
. Solo recuerde que .
es un metacaracter, por lo que debe escaparse o ponerlo entre corchetes (\.
o [.]
). Aquí hay una opción:
var str = '6.000.000';
str.replace(/[.]/g,",");
sí, un reemplazo sin una expresión regular solo reemplaza una ocurrencia del carácter. – Aukhan
he tenido el mismo problema, excepto que no sabía de antemano lo que eran los separadores de miles y el separador decimal. Terminé escribiendo una biblioteca para hacer esto. Si está interesado aquí, es: https://github.com/GuillaumeLeclerc/number-parsing
Puede usar esta función.Reemplazará las comas con '' y luego analizará el valor de Flas y luego volverá a ajustar las comas en el valor.
function convertToFloat(val) {
if (val != '') {
if (val.indexOf(',') !== -1)
val.replace(',', '');
val = parseFloat(val);
while (/(\d+)(\d{3})/.test(val.toString())) {
val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
}
}
return val;
}
- 1. Convertir float en bits
- 2. Cómo convertir float a int en smarty
- 3. Convertir float a char *
- 4. convertir float a entero en prolog
- 5. Convertir float a int en F #
- 6. Cómo convertir cadenas en ObjectId
- 7. Convertir float a NSNumber
- 8. Convierte float [] en byte [] en float [] nuevamente
- 9. ¿Cómo puedo convertir un número entero en float en Java?
- 10. Convertir cadenas en flotantes en Objective-C
- 11. Cómo convertir cadenas en enteros en Python?
- 12. ¿Cómo puedo convertir Float y [Word8]?
- 13. Cómo convertir de float a bigDecimal en java?
- 14. cómo puedo convertir un nsnumber en un float
- 15. Cómo convertir Float (clase Wrapper) en clase contenedora Integer?
- 16. Cómo convertir el valor NSString @ "3.45" en float?
- 17. Cómo convertir cadenas UTF-8 a cadenas RTF en java?
- 18. Cómo convertir cadenas nulas en cadenas vacías json.net
- 19. descomprime cadenas en javascript
- 20. Escapar cadenas en JavaScript
- 21. Convertir fechas en JavaScript
- 22. Cómo convertir float o currency a una cadena localizada?
- 23. Convertir de cadena de notación científica a float en C#
- 24. Convertir una cadena en un tipo de datos float
- 25. Convertir float a decimal en SQL Server 2008
- 26. cómo ordenar cadenas en javascript numéricamente
- 27. Cómo comparar cadenas Unicode en Javascript?
- 28. ¿Cómo puedo repetir cadenas en JavaScript?
- 29. Cómo convertir cadenas a control?
- 30. Cómo usar expr en float?
** véase también: ** http://stackoverflow.com/questions/24318654 – dreftymac