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 здесь напрямую, как вы сделали в своем примере.

Другие вопросы по тегам