Me pregunto cómo en javascript si me dieron un número (digamos 10000) y luego me dieron un porcentaje (digamos 35,8%)
¿Cómo calcularía cuánto es eso (por ejemplo, 3580)
javascript
math
Granizo
fuente
fuente
var number=10000; alert(number*0.358);
Respuestas:
var result = (35.8 / 100) * 10000;
(Gracias jball por este cambio de orden de operaciones. No lo consideré).
fuente
var
, ni espacios en blanco, pero no sería muy legible o no sería un buen código, ¿verdad? : Pvar result = pct / 100 * number;
Su porcentaje dividido por 100 (para obtener el porcentaje entre 0 y 1) veces por el número
35.8/100*10000
fuente
Esto es lo que haría:
// num is your number // amount is your percentage function per(num, amount){ return num*amount/100; } ... <html goes here> ... alert(per(10000, 35.8));
fuente
Utilizo dos funciones JS muy útiles: http://blog.bassta.bg/2013/05/rangetopercent-and-percenttorange/
function rangeToPercent(number, min, max){ return ((number - min) / (max - min)); }
y
function percentToRange(percent, min, max) { return((max - min) * percent + min); }
fuente
Si desea pasar el% como parte de su función, debe usar la siguiente alternativa:
<script> function fpercentStr(quantity, percentString) { var percent = new Number(percentString.replace("%", "")); return fpercent(quantity, percent); } function fpercent(quantity, percent) { return quantity * percent / 100; } document.write("test 1: " + fpercent(10000, 35.873)) document.write("test 2: " + fpercentStr(10000, "35.873%")) </script>
fuente
Lo mejor es memorizar la ecuación del equilibrio de forma natural.
Amount / Whole = Percentage / 100
Por lo general, le falta una variable, en este caso es Cantidad
Amount / 10000 = 35.8 / 100
luego tienes matemáticas de la escuela secundaria (proporción) a múltiples externos de ambos lados e internos de ambos lados.
Amount * 100 = 358 000 Amount = 3580
Funciona igual en todos los idiomas y en papel. JavaScript no es una excepción.
fuente
Para evitar por completo los problemas de punto flotante, la cantidad cuyo porcentaje se está calculando y el porcentaje en sí deben convertirse a números enteros. Así es como resolví esto:
function calculatePercent(amount, percent) { const amountDecimals = getNumberOfDecimals(amount); const percentDecimals = getNumberOfDecimals(percent); const amountAsInteger = Math.round(amount + `e${amountDecimals}`); const percentAsInteger = Math.round(percent + `e${percentDecimals}`); const precisionCorrection = `e-${amountDecimals + percentDecimals + 2}`; // add 2 to scale by an additional 100 since the percentage supplied is 100x the actual multiple (e.g. 35.8% is passed as 35.8, but as a proper multiple is 0.358) return Number((amountAsInteger * percentAsInteger) + precisionCorrection); } function getNumberOfDecimals(number) { const decimals = parseFloat(number).toString().split('.')[1]; if (decimals) { return decimals.length; } return 0; } calculatePercent(20.05, 10); // 2.005
Como puede ver, yo:
amount
como en elpercent
amount
ypercent
a números enteros usando notación exponencialEl uso de la notación exponencial se inspiró en la publicación del blog de Jack Moore . Estoy seguro de que mi sintaxis podría ser más corta, pero quería ser lo más explícito posible en el uso de los nombres de las variables y en la explicación de cada paso.
fuente
var number = 10000; var result = .358 * number;
fuente
Puede ser un poco pedante / redundante con su conversión numérica, pero aquí hay una función segura para calcular el porcentaje de un número dado:
function getPerc(num, percent) { return Number(num) - ((Number(percent) / 100) * Number(num)); } // Usage: getPerc(10000, 25);
fuente
Harder Way (propósito de aprendizaje):
var number = 150 var percent= 10 var result = 0 for (var index = 0; index < number; index++) { const calculate = index / number * 100 if (calculate == percent) result += index } return result
fuente