Если вы сделали это:
string s = (string)70;
Что бы вы ожидали в с?
A. «70» число написано так, как его читают люди.
B. "+70" число, написанное с положительным индикатором впереди.
C. "F" символ, представленный ASCII-кодом 70 .
D. "\ x00 \ x00 \ x00F" - четыре байта целого, каждый из которых отдельно конвертируется в их представление ASCII.
E. "\ x0000F" int разделяется на два набора по два байта, каждый из которых представляет символ Unicode.
F. "1000110" двоичное представление для 70.
G. "70 долларов" - целое число, конвертированное в валюту
H. Что-то еще.
Компилятор не может сказать, поэтому он заставляет вас делать это долго.
Есть два "длинных пути". Первый - использовать одну из перегрузок Convert.ToString () примерно так:
string s = Convert.ToString(-70, 10);
Это означает, что он преобразует число в строку с использованием нотации 10. Если число отрицательное, оно отображает «-» в начале, в противном случае оно просто показывает число. Однако, если вы преобразуете в двоичное, восьмеричное или шестнадцатеричное, отрицательные числа отображаются в два дополнения , поэтому Convert.ToString (-7, 16) становится "ffffffba".
Другой «длинный путь» - использовать ToString с формататором строк, например так:
string s2 = 70.ToString("D");
D является кодом форматера и сообщает методу ToString, как преобразовать в строку. Некоторые из интересных кодов перечислены ниже:
"D" Десятичный формат, состоящий из цифр 0-9 и "-" в начале, если это необходимо. Например. -70 становится "-70".
«D8» Я показал 8, но может быть любым числом. То же, что и десятичное число, но оно дополняется нулями до необходимой длины. Например. -70 становится "-00000070".
«N» Тысячи разделителей вставляются, и в конце добавляется «.00». Например. -1000 становится "-1,000.00".
«C» Символ валюты добавляется в начале после «-», тогда он такой же, как «N». Например. Использование en-Gb культуры -1000 становится "- £ 1,000.00".
"X" шестнадцатеричный формат. Например. -70 становится "46".
Примечание: Эти форматы зависят от текущих настроек культуры, поэтому, если вы используете en-Us, вы получите «$» вместо «£» при использовании кода формата «C».
Для получения дополнительной информации о кодах формата см. MSDN - Стандартные строки числового формата .