Hay dos formas populares de convertir una string de moneda en una string flotante utilizando diferentes bibliotecas incorporadas de JavaScript.
Método 1: este es un enfoque simple en el que uniremos los caracteres uno por uno desde el inicio usando el ciclo y si algún carácter resulta ser de tipo entero o numérico, usaremos el método substring() para sacar la substring del original. cuerda. Después de sacar la substring, usaremos el método parseFloat() para convertir esa string en valor flotante o doble.
Para verificar si el carácter es de tipo numérico o no, usamos el método charCodeAt() para obtener el valor Unicode del carácter especificado.
- Sintaxis:
-
string.substring(Startindex, Endindex)
El string.substring() es una función incorporada en JavaScript que se usa para devolver la parte de la string dada desde el índice inicial hasta el índice final. La indexación comienza desde cero (0).
-
parseFloat(value)
ParseFloat() es una función incorporada en JavaScript que se utiliza para aceptar la string y convertirla en un número de coma flotante. Si la string no contiene un valor numérico o si el primer carácter de la string no es un número, devuelve NaN, es decir, no es un número. En realidad, devuelve un número de coma flotante analizado hasta ese punto en el que encuentra un carácter que no es un número.
-
str.charCodeAt(index)
La función str.charCodeAt() devuelve una unidad de código de conjunto de caracteres Unicode del carácter presente en el índice de la string especificada como argumento.
Ejemplo 1:
<script> // JavaScript script to convert // string currency to double // Function to convert function convert(currency){ var k, temp; // Loop to make substring for ( var i = 0; i < currency.length; i++){ // Getting Unicode value k = currency.charCodeAt(i); // Checking whether the character // is of numeric type or not if (k > 47 && k < 58){ // Making substring temp = currency.substring(i); break ; } } // If currency is in format like // 458, 656.75 then we used replace // method to replace every ', ' with '' temp = temp.replace(/, /, '' ); // Converting string to float // or double and return return parseFloat(temp); } // Driver code // Currency in string var string_currency = "$450.45" ; document.write( "Currency value: " + string_currency + "</br>" ); // Converting currency var doubleValue = convert(string_currency); // Display currency document.write( "Double value: " +doubleValue + "</br>" ); // Currency in string string_currency = "$45, 645.45" ; document.write( "Currency value: " + string_currency + "</br>" ); // Converting currency doubleValue = convert(string_currency); // Display currency document.write( "Double value: " + doubleValue + "</br>" ); </script> |
Producción:
Currency value: $450.45 Double value: 450.45 Currency value: $45, 645.45 Double value: 45645.45
Método 2: En este método, usaremos el método replace() de JavaScript para reemplazar todos los caracteres que no sean números y decimales (.) con espacios en blanco («») . Después de eso, podemos usar el método parseFloat() para hacer que la string flote o se duplique. Este método es más eficiente que el método 1.
- sintaxis:
-
str.replace(A, B)
El string.replace() es una función incorporada en JavaScript que se usa para reemplazar una parte de la string dada con otra string o una expresión regular. La string original permanecerá sin cambios.
-
parseFloat(value)
ParseFloat() es una función incorporada en JavaScript que se utiliza para aceptar la string y convertirla en un número de coma flotante. Si la string no contiene un valor numérico o si el primer carácter de la string no es un número, devuelve NaN, es decir, no es un número. En realidad, devuelve un número de coma flotante analizado hasta ese punto en el que encuentra un carácter que no es un número.
Ejemplo 2:
<script> // JavaScript script to convert // string currency to double // Function to convert function convert(currency){ // Using replace() method // to make currency string suitable // for parseFloat() to convert var temp = currency.replace(/[^0-9.-]+/g,""); // Converting string to float // or double and return return parseFloat(temp); } // Driver code // Currency in string var string_currency = "$6542.45"; document.write("Currency value: " + string_currency +"</br>"); // Converting currency var doubleValue = convert(string_currency); // Display currency document.write("Converted to double: " + doubleValue +"</br>"); // Currency in string string_currency = "$357,545.45"; document.write("Currency value: " + string_currency +"</br>"); // Converting currency doubleValue = convert(string_currency); // Display currency document.write("Converted to double: " + doubleValue +"</br>"); </script>
Producción:
Currency value: $6542.45 Converted to double: 6542.45 Currency value: $357,545.45 Converted to double: 357545.45