Estoy tratando de convertir valores de mi respuesta API, donde obtengo los valores en MiB. Necesito convertir estos valores de MiB a GB para colocar el tamaño de memoria del servidor disponible en mi gráfico, pero no sé dónde me estoy equivocando.
¿Me puedes ayudar? Soy un principiante en Angular.
Mi código:
this.chart = new Chart('canvas', { type: 'bar', data: { labels: this.serverName, datasets: [ { data: this.serverMemory, borderColor: 'transparent', label: 'Full Memory', backgroundColor: '#007bff', borderWidth: 3, borderRadius: 10, }, { data: this.serverMemoryUnused, borderColor: 'transparent', label: 'Memory Unused', backgroundColor: '#e3ebf6', borderWidth: 3, borderRadius: 10, }, ], }, options: { scales: { x: { display: true, }, y: { beginAtZero: true, ticks: { callback: (label: any) => `${label * (1048576 / 1000000000)} GB` }, grid: { display: false } }, } } });Mi API está devolviendo esto: "4096000"
Sin embargo, al pasar este valor a la función, devuelve todos los valores como flotantes, me gustaría solo 2 decimales.
La función está devolviendo esto
4718.592000000001 GB 4194.304 GB 3670.016 GBMe gustaría algo como:
4.59 GB 4.19 GB 3.67 GB 2.61 GB 10 GB 20 GB 30 GBMiB = 1024 * 1024 bytes GB = 1000 * 1000 * 1000 bytes
Por lo tanto, primero debe multiplicar su valor por 1024 ^ 2 y luego dividirlo por 1000 ^ 3.
Su código debería ser algo como esto: (label * 1048576) / 1000000000 (sí, eso es equivalente a su cálculo).
De todos modos, supongo que el valor de retorno de su API no está en MiB, porque el resultado del cálculo es de 3 dimensiones a grande.