在Java中获得两个数字的百分比,精确到十分之一

时间:2016-03-16 00:49:31

标签: java

我试图在java中获得两个数字中最接近的百分比,但它不起作用。

这是我到目前为止所做的:

DecimalFormat df = new DecimalFormat("0.0");
double PD1 = (minus1 / MaxInt) * 100;
P1 = String.valueOf(df.format(PD1));

MaxInt是可能的数字,减1是MaxInt - 1然后我乘以100得到百分比然后十进制格式假设将它四舍五入到一个小数位,但它保持返回零。

3 个答案:

答案 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上的此链接。