Je dois arrondir un nombre au multiple de 5 le plus proche (soit vers le haut ou le bas) Par exemple, voici la liste des nombres et le numéro à côté duquel il faut arrondir.
12.5 10
62.1 60
68.3 70
74.5 75
80.7 80
Les chiffres ne seront que positifs.
je ne l'ai pas testé, mais 5*(Math.round(f/5));
devrait fonctionner
Le plus proche multiple de 5 .__ pour la valeur supérieure
5*(Math.ceil(Math.abs(number/5)));
pour valeur inférieure
5*(Math.floor(Math.abs(number/5)));
cela donne seulement une valeur positive.
public static void main(String args[]) {
double num = 67.5;
if (num % 5 == 0)
System.out.println("OK");
else if (num % 5 < 2.5)
num = num - num % 5;
else
num = num + (5 - num % 5);
System.out.println(num);
}
Essaye ça.
La solution de Gefei fonctionne, mais je devais convertir explicitement pour doubler comme ceci: 5*(Math.round((double)f/5))
Que diriez-vous quelque chose comme ça:
return round((number/5))*5;
Il y a beaucoup d'autres solutions sur cette page, mais je pense que c'est la plus concise.
Pour trouver le multiple le plus proche de x pour un nombre donné,
soit x le multiple et num le nombre donné:
// The closest multiple of x <= num
int multipleOfX = x * ( num / x );
Dans ton cas:
int multipleOf5 = 5 * ( num / 5 );