如何在Java中舍入*向下*整数?

时间:2009-11-23 14:38:17

标签: java numbers

我想在Java中将整数舍入到最接近的1000。

例如:

  • 13,623回合至13,000
  • 18,999回合至18,000

3 个答案:

答案 0 :(得分:51)

只需除以1000即可丢失对您不感兴趣的数字,并乘以1000:

i = i/1000 * 1000

或者,您也可以尝试:

i = i - (i % 1000)

答案 1 :(得分:12)

您可以将数字除以1000,应用Math.floor,乘以1000并转换回整数。

答案 2 :(得分:0)

int i = Math.floorDiv(-13623, 1000) * 1000 
//i => -14000

假设除数(示例中为1000)为正,则以上代码将始终舍入(朝负无穷大)。

i = i/1000 * 1000为正时,另一个答案(i)向下舍入,而当i为负时,另一个答案(-13623 / 1000 * 1000 == -13000 )舍入。

Math.floorDiv

对于long,还有一个Math.floor版本,该版本将适用于非常大的数字,其中double方法可能由于Math.floorMod的精度而失败。 / p>

还有floorDiv个与int i = -13623; i -= Math.floorMod(i, 1000); //i => -14000 一起使用的方法,这些方法可能使您将其缩短一点:

df = pd.DataFrame()
df['Index'] = [1, 2, 3]
df['Column1'] = ['path1', 'path2', 'path3']
df['Column2'] = ['[\'red\']', '[\'red\' \'blue\']', '[\'blue\']']