una sumar simbolo sacar porcentajes porcentaje escribir ejercicios dinero descuento como cantidad calcular java int decimal

java - sumar - porcentaje de dos int?



simbolo de porcentaje en java (5)

Bueno, para hacer el decimal en un porcentaje puedes hacer esto,

float percentage = (correct * 100.0f) / questionNum;

Quiero obtener dos entradas, una dividida por la otra para obtener un decimal o porcentaje. ¿Cómo puedo obtener un porcentaje o un decimal de estos dos momentos? (No estoy seguro si es correcto ... Probablemente estoy muy lejos ...) por ejemplo:

int correct = 25; int questionNum = 100; float percent = correct/questionNum *100;

Así es como pensé que podría hacerlo, pero no funcionó ... Quiero hacer el decimal (si hay uno) en un porcentaje de 100, por ejemplo en este caso es% 25. ¿Alguna idea a alguien?

Aquí está el código correcto (¡gracias a Salvatore Previti!):

float correct = 25; float questionNum = 100; float percent = (correct * 100.0f) / questionNum;

(Por cierto, estoy haciendo un proyecto que usa esto para un programa de verificación de pruebas; por eso necesito el porcentaje o el decimal)


Dos opciones:

Haz la división después de la multiplicación:

int n = 25; int v = 100; int percent = n * 100 / v;

Convierta un int a un float antes de dividir

int n = 25; int v = 100; float percent = n * 100f / v; //Or: // float percent = (float) n * 100 / v; // float percent = n * 100 / (float) v;


Si no agrega .0f se tratará como si fuera un número entero, y una división entera es muy diferente de una división de punto flotante :)

float percent = (n * 100.0f) / v;

Si necesita un número entero de esto, puede lanzar el float o el double nuevamente en número entero.

int percent = (int)((n * 100.0f) / v);

Si sabe que su valor n es inferior a 21474836 (es decir, (2 ^ 31/100)), puede hacer todas las operaciones con números enteros.

int percent = (n * 100) / v;

Si obtienes NaN es porque lo que haces no puedes dividir por cero, por supuesto ... no tiene sentido.


Uno de ellos debe ser una carroza flotante. Una forma posible de garantizar eso es:

float percent = (float) n/v * 100;

De lo contrario, estás haciendo una división entera, que trunca los números . Además, debe usar el double menos que haya una buena razón para el float .

El próximo problema con el que se encontrará es que algunos de sus porcentajes podrían parecerse al 24.9999999999999% en vez del 25%. Esto se debe a la pérdida de precisión en la representación de coma flotante. Tendrás que decidir cómo lidiar con eso, también. Las opciones incluyen un DecimalFormat para "corregir" el formato o BigDecimal para representar los valores exactos.


float percent = (n / (v * 1.0f)) *100