我试图在java中获得两个数字中最接近的百分比,但它不起作用。
这是我到目前为止所做的:
DecimalFormat df = new DecimalFormat("0.0");
double PD1 = (minus1 / MaxInt) * 100;
P1 = String.valueOf(df.format(PD1));
MaxInt是可能的数字,减1是MaxInt - 1然后我乘以100得到百分比然后十进制格式假设将它四舍五入到一个小数位,但它保持返回零。
答案 0 :(得分:2)
首先,你的标题是“在Java中将两个数字的百分比调整到最接近的十分之一”,而你的文字说“我试图得到最接近的两个数字的百分比”
假设变量double a = 12.34567;
表示百分比(即12,34567%),将其四舍五入到最接近的十分之一:
public class tst85 {
public static void main( String[] args)
{
double a = 12.34567;
double ar = Math.round(10.0*a)/10.0;
System.out.println(ar + " %");
}
}
这将打印
12.3 %
对于最近的百分比,只需使用Math.round
。
答案 1 :(得分:1)
您可能需要将其更改为以下内容:
DecimalFormat df = new DecimalFormat("0.0");
double PD1 = (double)minus1/MaxInt * 100;
P1 = String.valueOF(df.format(PD1));
基本上,你需要投射你的论据,而不是你的结果。当你完成操作时,你总是会得到零,因为int除以一个更大的int总是为零。
答案 2 :(得分:0)
将其更改为:
double PD1 = ((double) minus1 / MaxInt) * 100;
有关更多说明,请查看java中 how to produce a double doing integer division上的此链接。