Comment mettre à l'échelle un nombre jusqu'à dix, cent, mille, etc.Augmentation d'un nombre
Ex.
num = 11 round up to 20
num = 15 round up to 20
num = 115 round up to 200
num = 4334 round up to 5000
Comment mettre à l'échelle un nombre jusqu'à dix, cent, mille, etc.Augmentation d'un nombre
Ex.
num = 11 round up to 20
num = 15 round up to 20
num = 115 round up to 200
num = 4334 round up to 5000
je suppose que cette formule pourrait fonctionner? Sauf si vous avez plus d'exemples à montrer.
power = floor(log10(n))
result = (floor(n/(10^power)) + 1) * 10^power
Cela ne fonctionnerait pas, si vous avez fait 15 il reviendrait pour résultat ((15/10) + 1) * 10 qui est 25 –
@Rafe Kettler cela fonctionne si vous faites la division entière ou fais Math.Floor (15/10) – Arizona1911
ouais, je voulais dire division entière. Il a été mis à jour pour être plus explicite. – CookieOfFortune
convertir le nombre en un nombre décimal (à savoir 11 va de 1,1 à, 115 passe à 1,15), puis prendre le plafond du numéro, puis le multiplier arrière. Exemple:
public static int roundByScale(int toRound) {
int scale = (int)Math.pow(10.0, Math.floor(Math.log10(toRound)));
double dec = toRound/scale;
int roundDec = (int)Math.ceil(dec);
return roundDec * scale;
}
Dans ce cas, si vous entrez 15, il sera divisé par 10 pour devenir 1,5, puis arrondi à 2, la méthode retourne 2 * 10 qui est 20.
Ne fonctionne pas pour 10 ** n. – joel3000
il fait maintenant .... –
import math
exp = math.log10(num)
exp = math.floor(exp)
out = math.ceil(num/10**exp)
out = out * 10**exp
public static int ceilingHighestPlaceValue(int toCeil)
{
int placeValue = Math.Pow(10,toCeil.ToString().Length()-1);
double temp = toCeil/placeValue;
return= ceil(temp) * placeValue;
}
Quelle langue? S'il vous plaît poster le code que vous avez maintenant. Ce n'est pas www.do_my_homework_for_me.com –