NumericUpDown в процентах, затем в гекс
У меня есть числовой контроль вниз в моей форме. Значение равно 17, мне нужно сохранить это число в переменной, затем преобразовать его в процент от 0 до 255, а затем преобразовать в шестнадцатеричное.
Что у меня есть: 17 Где мне нужно получить: ((17 / 100) * 256) - 1 = 42,52, что округляется до 43 Затем мне нужно преобразовать это в гекс: 43 = 2B
Что я не знаю / не понимаю.
Когда я принимаю значение, в каком типе переменной я его храню? строка? Int? двойной?
Может кто-нибудь привести пример, пожалуйста.
Спасибо Джеймс
1 ответ
Решение
Я бы пошел по этому пути:
decimal value = 17m; // or YourNumericUpDownControl.Value
int percent = (int)Math.Round(((value / 100) * 256) - 1, MidpointRounding.ToEven);
string hex = percent.ToString("X");
NumericUpDown.Value
имеет тип decimal
(см. MSDN), поэтому вы должны начать с decimal
, Я ввел 17 здесь напрямую, как вы сделали в своем примере.