Как увеличить число до десяти, сто тысяч и т. Д.Масштабирование номера
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
Как увеличить число до десяти, сто тысяч и т. Д.Масштабирование номера
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
Я думаю, что эта формула может работать? Если у вас больше примеров для показа.
power = floor(log10(n))
result = (floor(n/(10^power)) + 1) * 10^power
Это не сработает, если вы сделали 15, он вернется для результата ((15/10) + 1) * 10, который равен 25 –
@ Rafe Kettler это работает, если вы выполняете целочисленное деление или do Math.Floor (15/10) – Arizona1911
Да, я имел в виду целочисленное деление. Он был обновлен, чтобы быть более явным. – CookieOfFortune
Преобразование числа в десятичной системе (т.е. 11 идет к 1,1, 115 идет до 1,15), а затем взять потолок числа, а затем умножить его обратно. Пример:
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;
}
В этом случае, если вы вход 15, он будет разделен на 10, чтобы стать 1,5, то округляется до 2, то этот метод будет возвращать 2 * 10, который является 20.
Не работает для 10 ** n. – joel3000
сейчас. –
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;
}
Какой язык? Отправьте код, который у вас есть. Это не www.do_my_homework_for_me.com –