JavaScript - Formatear un valor numérico de moneda

 
Vista:

Formatear un valor numérico de moneda

Publicado por Juan Carlos (1 intervención) el 12/04/2020 04:11:20
Hola chicos, mi primera consulta en el foro espero puedan ayudarme. Estoy que me rompo la cabeza con esto hace un par de días, mi objetivo crear una función que le de formato de moneda a un valor numérico según algunas condiciones, mi script está abajo. Con este código estoy consiguiendo formatear la constante n como quiero, mi pregunta es cómo creo una función que no dependa de la constante n? he tratado de colocarla como variable n sin definir constante y cuando lo hago la pantalla no me imprime porque me sale que n no está definida. Espero haberme explicado bien, saludos!


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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import { format } from 'd3';
 
const n = 72932134;
 
// esta parte cuenta los digitos enteros del numero
    var digits_count = n => {
        var count = 0;
        if (n >= 1) ++count;
 
        while (n / 10 >= 1) {
        n /= 10;
        ++count;
        }
 
        return count;
    };
 
// esta parte especifica la cantidad de la variable formatofinal segun la longitud del mismo
    var cantNum;
    var formatofinal;
        if (digits_count === 0) {
            cantNum = 0;
            formatofinal ='r';
        }
        else if (digits_count === 1) {
            cantNum = 1;
            formatofinal ='s';
        }
        else if (digits_count === 2) {
            cantNum = 2;
            formatofinal ='s';
        }
        else if (digits_count === 3) {
            cantNum = 3;
            formatofinal ='s';
        }
        else if (digits_count === 4) {
            cantNum = 2;
            formatofinal ='s';
        }
        else if (digits_count === 5) {
            cantNum = 3;
            formatofinal ='s';
        }
        else if (digits_count === 6) {
            cantNum = 3;
            formatofinal ='s';
        }
        else if (digits_count === 7) {
            cantNum = 2;
            formatofinal ='s';
        }
        else if (digits_count === 8) {
            cantNum = 3;
            formatofinal ='s';
        }
        else if (digits_count === 9) {
            cantNum = 3;
            formatofinal ='s';
        }
        else {
            cantNum = 2;
            formatofinal ='s';
        };
 
    const simbolo = "$";
     // esta parte le agrega el formato final con el simbolo
    const formatear = d => {
        const formato = simbolo+format(",."+ cantNum +formatofinal)(d)
            .replace('.', ',')
            .replace('G', 'B');
            return formato;
    };
 
 
console.log(formatear(n));
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