C # -конвертирование int ToString ("X6") дает 8 символов - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь преобразовать wdColor в цвет rgb # с помощью этого текущего кода. Я преобразовываю результат перечисления wdColor в hex с помощью ToString ("x6"). Но иногда он возвращает мне строку длиной 8 и мне нужна строка длиной 6, чтобы преобразовать ее в rgb;

 var num = -603914241;
 var numToHex = y.ToString("x6");

дает "dc00ffff", который имеет 8 символов.

Ответы [ 2 ]

0 голосов
/ 01 июля 2018

Согласно инструкции

https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings#XFormatString

Шестнадцатеричный ("X") спецификатор формата преобразует число в строку шестнадцатеричных цифр. Случай спецификатора формата указывает использовать ли заглавные или строчные символы для шестнадцатеричного цифры больше 9. Например, используйте «X» для «ABCDEF» и «x» для получения «abcdef». Этот формат поддерживается только для целочисленных типов.

Спецификатор точности указывает минимальное количество цифр желаемое в результирующей строке. При необходимости число дополняется нулями слева от него, чтобы получить количество цифр, заданных точностью Спецификатор.

В вашем случае это означает, что x6 гарантирует как минимум (не точно ) 6 шестнадцатеричные цифры

0 голосов
/ 01 июля 2018

Введенный номер слишком велик, чтобы его можно было представить, используя всего 6 символов. x6 означает, что длина выходного файла должна быть не менее 6 символов, с заполнением нулями по мере необходимости, чтобы соответствовать этой минимальной длине - но если ввод слишком большой, он будет использовать столько символов, сколько необходимо для его представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...