2013-11-29 2 views
0

У меня есть очень простой код, где я получаю значение от числового updown, которое у меня есть, чтобы преобразовать в hex. (для numericupdown Hexadecimal свойство установлено верно)простой int to hex преобразование не работает

Я выбираю FF от nud, расположенной в winForm. то в коде

string str = nudID.Value.ToString("X"); 

Но это не работает, и я получаю исключение формата

+0

В чем заключается содержимое «Значение»? – Jensen

+0

показывает, что это 255 – user2968369

ответ

4

значение NumericUpDown не Int типа, это десятичное. Может, здесь проблема?

+0

bravo !! спасибо да, вы правы. он работал теперь – user2968369

1

Попробуйте это

string str = nudID.Value.ToString("X2"); 
3

NumericUpDown.Value возвращается Decimal. Decimal.ToString(string) не поддерживает «X»:

Параметр формат может быть любым допустимым стандартом числовой спецификатор формата для D, R, за исключением, и X

Адаптация код из this solution, попробуйте это, если вы на .NET 4.0 или более поздней версии:

string str = new System.Numerics.BigInteger(nudID.Value).ToString("X"); 
+0

спасибо за ответ. Это помогло :) – user2968369

0

это должно работать:

string str = ((int)nudID.Value).ToString("X"); 

Вам нужно разобрать десятичное значение на int. Вы можете сделать это немного безопаснее, используя TryParse, если хотите.

Смежные вопросы