我的程序中设置了一个变量:

int weekInterval = 100;


我有以下功能:

public void weeksToNotify(int weeks, String date){
        Date dt = Convert(date);
        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);
        weekSpecial = weekInterval*(1+(weeks/weekInterval));
        cal.add(Calendar.DATE, (weekSpecial*7));
        dateWeekReg = cal.getTime();
    }


该函数的参数为​​:

int weeks: The current age in weeks for the person/event/thing.

String date: The date of birth of the person/event/thing.

现在执行此函数后,变量weekSpecial具有所需的值,但是我想对此值进行四舍五入。因此,例如,如果weekSpecial变量的值是150,我想要200作为结果,如果它的值是23400,我只希望23000,等等。我不是在寻找精确的答案,我想学习如何解决这个问题。因此,指针或提示/ Algo会为我服务。谢谢 :)

最佳答案

对于第一个值(150),您可以尝试设置

weekSpecial = weekSpecial/100 * 100

在计算weekSpecial参数之后。

Java中的整数除法删除小数部分,因此先除以然后再乘以100应该会给您您所要的内容。

当然,该计算可以集成在一个语句中,例如

weekSpecial = (weekInterval*(1+(weeks/weekInterval)) / 100) * 100;


如果您需要的舍入为2位数字(例如,从150100),则此方法有效,否则您需要除以并乘以10 ^ n,其中n是您需要舍入的位数(以对于150,n = 2)。

因此,对于23500,乘积应为23500/1000 * 1000

通常,假设您知道n,答案是

double factor = Math.pow(10, n);
weekSpecial = (int)(Math.round(weekSpecial/factor * factor));

10-07 18:46