Je suppose que vous voulez dire quelque chose comme
int percentage =(1- fl)*100;
à calculer le pourcentage.
Mais pour fl = 0.9861948 cela donne 1 (1.38052 coulé de type int).
Si vous voulez 2 au lieu de cela, vous pouvez utiliser Math.ceil:
int percentage =(int)Math.ceil((1- fl)*100);//gives 2
hey, va le mettre dans la boucle et d'essayer.. merci ça a fonctionné grille. Juste un peu ajustez nécessaire "double p =(1.0 - fl) * 100; int res = (int)par;"
J'ai écrit deux méthodes ci-dessous pour convertir un nombre à virgule à une chaîne affichée en pourcentage:
//without decimal digits publicstaticString toPercentage(float n){returnString.format("%.0f",n*100)+"%";}//accept a param to determine the numbers of decimal digitspublicstaticString toPercentage(float n,int digits){returnString.format("%."+digits+"f",n*100)+"%";}
Test De Décision1:
publicstaticvoid main(String[] args){float f =1-0.9861948f;//your number,0.013805211System.out.println("f="+f);//f=0.013805211System.out.println(toPercentage(f));//1%System.out.println(toPercentage(f,2));//1.38%}
Test Case2:
Si vous souhaitez 2% au lieu de cela, essayez d'entrée un paramètre comme ceci:
float f =1-0.9861948f;//your number,0.013805211
f=(float)(Math.ceil(f*100)/100);//f=0.02System.out.println("f="+f);f=0.02System.out.println(toPercentage(f));//2%System.out.println(toPercentage(f,2));//2.00%
Lors de la sortie du flotteur juste dire la conversion de chaîne de caractères pour n'autoriser aucune/un/quelque chiffres de fin:
System.out.printf("We have downloaded: %.0f %%%n", (1-fl) * 100);
Mais je ne sais pas exactement pourquoi vous voulez le tour de 1,4% à 2%.. si vous voulez vraiment que cela devient beaucoup plus compliqué pour vraiment pas de bonne raison.
Bonne approche, mais je doute qu'il veut de sortie les données de la console. Puis remplacer System.out.printf avec String.format - s'il veut montrer le nombre à l'utilisateur, il faudra formater une chaîne de caractères. Pour tout le reste, le nombre exact est plus utile
Depuis pour cent signifie "par 100," vous pourriez peut-être plusieurs fl par 100. Depuis, pour une raison quelconque, vous souhaitez .98 au moyen de 2%, vous serait alors de soustraire le résultat de 100.
float allSize =...;float downloaded =...;int percent =(allSize - downloaded/100*100.0)/allSize
(downloaded/100*100.0)- used for make two digit of fractional part;
Je suppose que vous voulez dire quelque chose comme
à calculer le pourcentage.
Mais pour
fl = 0.9861948
cela donne1
(1.38052
coulé de type int).Si vous voulez
2
au lieu de cela, vous pouvez utiliserMath.ceil
:merci ça a fonctionné grille. Juste un peu ajustez nécessaire "double p =(1.0 - fl) * 100; int res = (int)par;"
OriginalL'auteur jeha
vous ont des valeurs constantes dans le code, vous devez les remplacer par les variables représentant le montant téléchargé et le taille totale:
de sortie:
25%
OriginalL'auteur yurib
J'ai écrit deux méthodes ci-dessous pour convertir un nombre à virgule à une chaîne affichée en pourcentage:
Test De Décision1:
Test Case2:
Si vous souhaitez 2% au lieu de cela, essayez d'entrée un paramètre comme ceci:
OriginalL'auteur Jaskey
Lors de la sortie du flotteur juste dire la conversion de chaîne de caractères pour n'autoriser aucune/un/quelque chiffres de fin:
System.out.printf("We have downloaded: %.0f %%%n", (1-fl) * 100);
Mais je ne sais pas exactement pourquoi vous voulez le tour de 1,4% à 2%.. si vous voulez vraiment que cela devient beaucoup plus compliqué pour vraiment pas de bonne raison.
Puis remplacer
System.out.printf
avecString.format
- s'il veut montrer le nombre à l'utilisateur, il faudra formater une chaîne de caractères. Pour tout le reste, le nombre exact est plus utileOriginalL'auteur Voo
Que diriez - (1.0 -fl ) * 100 ?
Convertir ce nombre entier et vous n'auriez pas de problèmes.
OriginalL'auteur stacker
Depuis pour cent signifie "par 100," vous pourriez peut-être plusieurs
fl
par 100. Depuis, pour une raison quelconque, vous souhaitez .98 au moyen de 2%, vous serait alors de soustraire le résultat de 100.OriginalL'auteur drdwilcox
Vous besoin de quelque chose comme:
OriginalL'auteur Sergey Gazaryan
Après l'application de la ((1-fl)*100) logique que vous pouvez utiliser DecimalFormat ou Chaîne de caractères.format().
OriginalL'auteur JustinKSU
OriginalL'auteur jcurtin