Foros del Web » Programando para Internet » Javascript »

necesito el resultado numerico con decimales

Estas en el tema de necesito el resultado numerico con decimales en el foro de Javascript en Foros del Web. Buenas tengo este script para un calculo de metros cuadrados <script type="text/javascript"> function calcularAreaCuadrado() { var largo=document.getElementById("largo").value; largo=largo.toString().replace(',','.'); var alto=document.getElementById("alto").value; alto=alto.toString().replace(',','.'); if(largo==""){document.getElementById("errorLado") .innerHTML="Por favor, introduzca ...
  #1 (permalink)  
Antiguo 28/11/2015, 14:39
Avatar de alfoner  
Fecha de Ingreso: abril-2009
Mensajes: 146
Antigüedad: 15 años
Puntos: 0
Exclamación necesito el resultado numerico con decimales

Buenas tengo este script para un calculo de metros cuadrados

<script type="text/javascript">
function calcularAreaCuadrado()
{
var largo=document.getElementById("largo").value;
largo=largo.toString().replace(',','.');

var alto=document.getElementById("alto").value;
alto=alto.toString().replace(',','.');

if(largo==""){document.getElementById("errorLado") .innerHTML="Por favor, introduzca el lado de la figura.";}
else if(largo<0){document.getElementById("errorLado").i nnerHTML="El lado del cuadrado no puede ser negativo.";}

else{
document.getElementById("errorLado").innerHTML="";
var area=0;
area=largo*alto;
document.getElementById("area").value=Math.round(a rea*100)/10000*18;

}
}
</script>

yo pongo el alto y el largo y quiero que me de el resultado de el metro cuadrado a 18 euros
todo es correcto lo único es que me da el resultado sin decimales.
y necesitaría un resultado por ejemplo 1.250 en vez de 1250.
Gracias.
  #2 (permalink)  
Antiguo 28/11/2015, 15:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: necesito el resultado numerico con decimales

Puedes usar el método .toFixed() o esta función para obtener un resultado personalizado.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 28/11/2015, 15:53
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: necesito el resultado numerico con decimales

podria ser asi:
Código HTML:
Ver original
  1. <input id="n" value=""/>

Código Javascript:
Ver original
  1. var NUM = 3500;
  2.  
  3. function format1(n, currency) {
  4.     return currency + " " + n.toFixed(2).replace(/./g, function(c, i, a) {
  5.         return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c;
  6.     });
  7. }
  8. var salida = format1(NUM,"Bs.");
  9. document.getElementById('n').value = salida;

MUESTRA: http://jsfiddle.net/2bxq5zt2/
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 29/11/2015, 09:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: necesito el resultado numerico con decimales

Puedes usar el objeto numberformat. Pero mira la compatibilidad con los navegadores antes https://developer.mozilla.org/es/doc...s/NumberFormat
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 29/11/2015, 17:01
Avatar de alfoner  
Fecha de Ingreso: abril-2009
Mensajes: 146
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: necesito el resultado numerico con decimales

muchas gracias casi lo tengo el principal problema era que introducia la cantidad sin puntos
entonces e hecho estas modificaciones....ahora introduzco 1.20 y 60 y el resultado es 12.959999999999999
Lo cual ahora se me plantea ese problema ya que necesito que el resultado no sea tan largo si no que fuese asi 12.95

les dejo el codigo a ver si me pueden ayudar.
GRACIAS

<script type="text/javascript">
//AQUI HAGO LA FUNCION DE EL CALCULO
function calcularAreaCuadrado()
{
var largo=document.getElementById("largo").value;
largo=largo.toString().replace(',','.');

var alto=document.getElementById("alto").value;
alto=alto.toString().replace(',','.');

var area=0;
area=largo*alto;
document.getElementById("area").value=Math.round(a rea*100)/10000*18;

}


//AQUI PONEMOS PUNTO A EL CONTENIDO DE EL INPUT
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replac e(/(?=\d*\.?)(\d{2})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}

else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}


</script>


<form action="/cuadrado.htm" class="formulario" id="formulario1" name="formulario1">


<label class="labelformcalculo" for="lado" >Largo:</label>
<input type="text" value="" id="largo" name="largo" onkeyup="format(this)" onchange="format(this)"/>
<label class="labelformcalculo" for="lado" >Alto:</label>
<input type="text" value="" id="alto" name="alto" onkeyup="format(this)" onchange="format(this)"/>

<input type="button" value="Calcular Area Cuadrado" onclick="calcularAreaCuadrado();return true"/>



<input type="text" readonly="readonly" class="textInput" value="" id="area" name="area"/>

</form>
  #6 (permalink)  
Antiguo 02/12/2015, 09:06
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: necesito el resultado numerico con decimales

Alexis88 he estado estudiando el código del link que dejastes. He podido entender la mayoría, exceptuando el uso del (+)
Código HTML:
Ver original
  1. var n = !isFinite(+number) ? 0 : +number,
¿Pues explicarme para qué se usa?
  #7 (permalink)  
Antiguo 02/12/2015, 17:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: necesito el resultado numerico con decimales

Verifica si el valor es un número, pero lo que en realidad necesitas hacer es utilizar esa función para establecer el formato; ahora que si deseas estudiarla, pues, ya es algo opcional, aunque recomendable.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 03/12/2015, 06:52
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: necesito el resultado numerico con decimales

a algunos les gusta usar palabras bien sonantes para así disimular que no son unos ignorantes.

el valor unitario (+) como bien se te comenta es para convertir el operando en tipo numérico. es decir es equivalente al objeto Number()
Cita:
num = '1000';
console.log(num);
console.log(Number(num));
console.log(+num);
también te puedes encontrar con
Cita:
+function() { console.log('hola'); }();
que es equivalente a al uso más común de
Cita:
(function() { console.log('hola'); })();
(function() { console.log('hola'); }());
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #9 (permalink)  
Antiguo 03/12/2015, 11:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: necesito el resultado numerico con decimales

Para complementar a lo que te han dicho, te dejo una tabla que tenía guardada desde hacía un tiempo. Hay más formas de parsear una cadena a valor numérico que utilizando el objeto Number() o el +. Observa que se obtienen diferentes resultados.



Esa línea en particular (por la que preguntas), verifica que un valor sea numérico, aunque existen otras formas hacerlo, como la que usa el método $.isNumeric() de jQuery:

Código Javascript:
Ver original
  1. isNumeric: function( obj ) {
  2.     return !isNaN( parseFloat(obj) ) && isFinite( obj );
  3. }

Por un lado, conviertes al valor en número de punto flotante y verificas si no es un NaN (not a number), es decir, si es un número (la negación ! genera que se devuelva lo contrario), además, verificas si es el valor es un número finito. Si se cumplen ambas condiciones, el valor será numérico.

P. D.: Disculpa por no haber respondido antes a tu inquietud. Contesté acerca de lo que hace esa línea, no sobre el operador de conversión +. Por explicarte lo primero, omití lo segundo.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 03/12/2015 a las 12:41 Razón: Método de jQuery
  #10 (permalink)  
Antiguo 03/12/2015, 13:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: necesito el resultado numerico con decimales

Son muchos otros. Cualquier operador unario o binario https://developer.mozilla.org/es/doc..._and_Operators
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #11 (permalink)  
Antiguo 03/12/2015, 13:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: necesito el resultado numerico con decimales

Curiosamente fue estudiando esa documentación que llegué a la tabla.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #12 (permalink)  
Antiguo 08/12/2015, 15:47
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: necesito el resultado numerico con decimales

Gracias por la info. Ha sido muy aclaratoria

Un saludo

Etiquetas: numerico, resultado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.