我的程序中设置了一个变量:
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位数字(例如,从
150
到100
),则此方法有效,否则您需要除以并乘以10 ^ n
,其中n
是您需要舍入的位数(以对于150,n = 2
)。因此,对于
23500
,乘积应为23500/1000 * 1000
。通常,假设您知道
n
,答案是double factor = Math.pow(10, n);
weekSpecial = (int)(Math.round(weekSpecial/factor * factor));