2009-11-23 6 views
18

Je voudrais arrondir les nombres entiers à leur 1000 le plus proche en Java.Comment arrondir * vers le bas * les entiers en Java?

Ainsi, par exemple:

  • 13.623 tours à 13.000
  • 18999 tours à 18 000
  • etc
+7

Voulez-vous dire arrondir vers le bas ou arrondir à zéro? Il y a une différence quand les chiffres peuvent être négatifs. –

+0

en fait je veux dire arrondir à la baisse donc je n'ai que des milliers à traiter, c'est-à-dire 43 844 arrondis à 43 000 (pas 44 000) – Redandwhite

Répondre

48

Il suffit de diviser par 1000 pour perdre les chiffres qui ne sont pas intéressants pour vous, et multiplier par 1000:

i = i/1000 * 1000 

Ou, vous pouvez aussi essayer:

i = i - (i % 1000) 
+1

+1: Je n'ai jamais pensé à utiliser le module de cette façon. En outre, vous pouvez raccourcir légèrement la ligne en faisant 'i - = i% 1000' (non, si des parenthèses sont requises autour du côté droit ou non) – Powerlord

+0

Vraiment? J'ai toujours pensé à modulus comme un moyen d'obtenir les unités d'un nombre ('i% 10') etc. En ce qui concerne la version raccourcie - c'est probablement ce que je ferais dans mon code, mais je voulais qu'il soit clair ici. – abyx

+4

Ceci arrondit vers zéro. – starblue

11

Vous pouvez diviser le nombre par 1000, appliquer Math.floor, il faut multiplier par 1000 et rejetterait à l'entier.