JavaScript - Sumar y Restar Números con decimales

 
Vista:
Imágen de perfil de Eduardo Arroyo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Sumar y Restar Números con decimales

Publicado por Eduardo Arroyo (176 intervenciones) el 06/11/2019 23:47:57
Tengo el siguiente código que suma y resta en tiempo real los valores ingresados en los campos, adicionalmente los campos son solo números, y coloca automáticamente el separador de miles.. todo funciona bien solo que no me suma decimales..

es decir si pongo 1000 + 1000 sale 2000
pero si como en este ejemplo 1.000 + 1.000 sale 2

Acá pongo el Script el cual no se que hacer para que funcione sin problemas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value);
var numero2 = Number(caja["numero2"].value);
var numero3 = Number(caja["numero3"].value);
resultado=numero1+numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1+numero2-numero3;
}
}
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS 
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" readonly/>
  </p>
</form>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 34
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Sumar y Restar Números con decimales

Publicado por JESUS DAVID ARIZA ROYETH (10 intervenciones) el 07/11/2019 00:17:57
Ahí una correción :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value.replace(".",""))
var numero2 = Number(caja["numero2"].value.replace(".",""))
var numero3 = Number(caja["numero3"].value.replace(".",""))
resultado=numero1+numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1+numero2-numero3;
}
}
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS 
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" readonly/>
  </p>
</form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo Arroyo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Sumar y Restar Números con decimales

Publicado por Eduardo Arroyo (176 intervenciones) el 07/11/2019 15:21:30
Hola Jesus Ariza me funciona Perfecto, Millll gracias por tu ayuda, pero donde se muestra el resultado no me muestra el decimal que hago para que alli tambien separe el punto los miles.. Mil Gracias. y Perdona!!!

he usado: onclick y sirve solo si le selecciono el campo (que es de solo lectura)


<input name="resultado" type="text" onclick="format(this)" readonly/>

he usado el onload pero no me sirve...

<input name="resultado" type="text" onclick="format(this)" readonly/>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 34
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Sumar y Restar Números con decimales

Publicado por JESUS DAVID ARIZA ROYETH (10 intervenciones) el 07/11/2019 15:39:19
here:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value.replace(".",""))
var numero2 = Number(caja["numero2"].value.replace(".",""))
var numero3 = Number(caja["numero3"].value.replace(".",""))
resultado=numero1+numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1+numero2-numero3;
format(caja["resultado"])
}
}
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS 
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" readonly/>
  </p>
</form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Eduardo Arroyo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Sumar y Restar Números con decimales

Publicado por Eduardo Arroyo (176 intervenciones) el 07/11/2019 15:54:46
JESUS DAVID ARIZA ROYETH ERES EL MEJOR, MIL GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar