これを行った場合:
string s = (string)70;
あなたはsに何を期待しますか?
A. 「70」は人間が読む方法で書かれた数字です。
B. 「+70」は、前にプラス記号を付けて書かれた数字です。C. 「F」はASCII コード 70
で表される文字。
D. "\x00\x00\x00F" int の 4 バイトがそれぞれ個別に ASCII 表現に変換されます。
E. "\x0000F" int は、それぞれが Unicode 文字を表す 2 バイトの 2 つのセットに分割されます。
F. "1000110" は 70 の 2 進数表現。
G. "$70" は通貨に変換された整数
H. 何か他のもの。
コンパイラはそれを知ることができないため、長い道のりを歩ませます。
2つの「長い道」があります。1 つ目は、次のような Convert.ToString() オーバーロードの 1 つを使用することです。
string s = Convert.ToString(-70, 10);
これは、基数 10 表記を使用して数値を文字列に変換することを意味します。数値が負の場合は先頭に「-」が表示され、それ以外の場合は数値のみが表示されます。ただし、2 進数、8 進数、16 進数に変換すると、負の数は2 の補数で表示されるため、Convert.ToString(-7, 16) は "ffffffba" になります。
もう 1 つの「長い道のり」は、次のような文字列フォーマッタで ToString を使用することです。
string s2 = 70.ToString("D");
D はフォーマッタ コードであり、ToString メソッドに文字列への変換方法を指示します。興味深いコードの一部を以下に示します。
"D" 必要に応じて先頭に "-" を付けた 0 ~ 9 の 10 進形式。たとえば、-70 は「-70」になります。
"D8" 8 を示しましたが、任意の数である可能性があります。decimal と同じですが、必要な長さになるまでゼロが埋め込まれます。たとえば、-70 は「-00000070」になります。
"N" 千区切りが挿入され、最後に ".00" が追加されます。たとえば、-1000 は「-1,000.00」になります。
"C" "-" の後に通貨記号が最初に追加され、"N" と同じになります。たとえば、en-Gb カルチャを使用すると、-1000 は "-£1,000.00" になります。
"X" 16 進形式。たとえば、-70 は「46」になります。
注:これらの形式は現在のカルチャ設定に依存するため、en-Us を使用している場合、形式コード「C」を使用すると「£」ではなく「$」が表示されます。
フォーマット コードの詳細については、MSDN - 標準数値フォーマット文字列を参照してください。