我有以下代码:
float fl = ((float)20701682/(float)20991474);
Run Code Online (Sandbox Code Playgroud)
这给了我fl = 0.9861948.
我想转换0.9861948到2%,因为2%已经被下载.
我正在下载文件并计算进度.
任何帮助都会受到影响.
yur*_*rib 20
如果代码中有常量值,则应使用表示下载量和总大小的变量替换它们:
float downloaded = 50;
float total = 200;
float percent = (100 * downloaded) / total;
System.out.println(String.format("%.0f%%",percent));
Run Code Online (Sandbox Code Playgroud)
产量:25%
jeh*_*eha 16
我想你的意思是
int percentage = (1 - fl) * 100;
Run Code Online (Sandbox Code Playgroud)
计算百分比.
但是fl = 0.9861948这给了1(1.38052转换为int).
如果你想要2,你可以使用Math.ceil:
int percentage = (int) Math.ceil((1 - fl) * 100); // gives 2
Run Code Online (Sandbox Code Playgroud)
我在下面编写了两种方法将浮点数转换为以百分比显示的字符串:
//without decimal digits
public static String toPercentage(float n){
return String.format("%.0f",n*100)+"%";
}
//accept a param to determine the numbers of decimal digits
public static String toPercentage(float n, int digits){
return String.format("%."+digits+"f",n*100)+"%";
}
Run Code Online (Sandbox Code Playgroud)
测试案例1:
public static void main(String[] args) {
float f = 1-0.9861948f;//your number,0.013805211
System.out.println("f="+f);//f=0.013805211
System.out.println(toPercentage(f));//1%
System.out.println(toPercentage(f,2));//1.38%
}
Run Code Online (Sandbox Code Playgroud)
测试案例2:
如果您想要 2%,请尝试输入这样的参数:
float f = 1-0.9861948f;//your number,0.013805211
f= (float)(Math.ceil(f*100)/100);//f=0.02
System.out.println("f="+f);f=0.02
System.out.println(toPercentage(f));//2%
System.out.println(toPercentage(f,2));//2.00%
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50563 次 |
| 最近记录: |