JavaScript - PROBLEMA CON DECIMALES

   
Vista:

PROBLEMA CON DECIMALES

Publicado por marcel (1 intervención) el 07/10/2015 16:21:42
Amigos Buenos dias:

tengo esta variable que a su vez procesa una funcion con la intension de dar un formato Numerico Ejemplo 1.800,00 Bs en vez de 1800.00 mi problema es que no e podido modificar los decimales ya que no me los recorta a dos decimales sino el coloca todos los q sean y solo quiero dos decimales

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var formatNumber = {
	separador: ".", // separador para los miles
	sepDecimal: ',', // separador para los decimales
	formatear:function (num){
		num +='';
		var splitStr = num.split('.');
		var splitLeft = splitStr[0];
		if (splitStr[1]>0)
		{var splitRight = splitStr.length > 1 ? this.sepDecimal+splitStr[1]:'';}
		else
		{var splitRight = ",00"}
		var regx = /(\d+)(\d{3})/;
		while (regx.test(splitLeft)) {
			splitLeft = splitLeft.replace(regx, '$1' + this.separador + '$2');
		}
		return this.simbol + splitLeft  +splitRight;
	},
	new:function(num, simbol){
		this.simbol = simbol ||'';
		return this.formatear(num);
	}
}
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 xve

PROBLEMA CON DECIMALES

Publicado por xve (1595 intervenciones) el 07/10/2015 20:54:22
Hola Marcel, aquí tienes otra función que también hace lo mismo
http://www.lawebdelprogramador.com/codigo/JavaScript/2236-formatear-numeros-con-los-separadores-de-miles.html

He modificado un poco el código haber si te sirve...
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
<!DOCTYPE html>
<html lang="es">
<meta charset="utf-8">
<script>
var formatNumber = {
	separador: ".", // separador para los miles
	sepDecimal: ',', // separador para los decimales
	formatear:function (num){
		num +='';
		var splitStr = num.split('.');
		var splitLeft = splitStr[0];
		if (splitStr[1]>0)
		{
			if(splitStr[1].length==2)
				var splitRight = this.sepDecimal+splitStr[1];
			else if(splitStr[1].length>2)
				var splitRight = this.sepDecimal+splitStr[1].substr(0,2);
			else
				var splitRight = this.sepDecimal+splitStr[1];
		}
		else
		{var splitRight = ",00"}
		var regx = /(\d+)(\d{3})/;
		while (regx.test(splitLeft)) {
			splitLeft = splitLeft.replace(regx, '$1' + this.separador + '$2');
		}
		return this.simbol + splitLeft  +splitRight;
	},
	new:function(num, simbol){
		this.simbol = simbol ||'';
		return this.formatear(num);
	}
}
</script>
 
<body>
 
<script>
document.write("<br>"+formatNumber.new("3500.2335","$"));
document.write("<br>"+formatNumber.new("3500.1","$"));
</script>
 
</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

PROBLEMA CON DECIMALES

Publicado por marcel (1 intervención) el 08/10/2015 21:16:05
Hola Viejo como estas XVE nuevamente gracias me funciono la modificación que le hiciste ...!!!!!
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