int num1 = int.Parse("123456789"); int num2 = int.Parse("123,456,789", NumberStyles.AllowThousands); int num3 = int.Parse("123e4", NumberStyles.AllowExponent); int num4 = int.Parse("5ef2", NumberStyles.HexNumber); // 前後に空白文字があってもよい int num5 = Convert.ToInt32("123456789"); int num6 = Convert.ToInt32("5ef2", 16);
C# の int型は符号付き 32ビット整数、long型は符号付き 64ビット整数である。
一事例では16進については Convertの方がわずかに速かった。たまたまかもしれない。
double num1 = double.Parse("1234.5678"); double num2 = Convert.ToDouble("1234.5678");
string str1 = Convert.ToString(13456789); string str2 = Convert.ToString(1234.5678); int num = 123; string str3 = num.ToString(); // 123 string str4 = num.ToString("x2"); // 7b 16進(0-9,a-f)2桁 string str5 = num.ToString("X3"); // 07B 16進(0-9,A-F)3桁
double num = 3.14156; string str = num.ToString("f2"); // 3.14
"f2"の場合、正の数には "+" が付かない。正の数には "+" を付けるには、次のようにする。
正の数、負の数、ゼロの順に書式を指定する。
double num = 3.14156; string str = num.ToString("+#0.00;-#0.00;0"); // +3.14
数値 n = 1, 2, ... , 10 を "01", "02", ... "10" のように変換するには n.ToString("d2") とする。
数値が二つ以上の場合には、String.Formatメソッドを使用する。
string str1 = String.Format("A: {0:f1}, B: {1:f2}, C: {0:f0}", 3.1415, 123.456, 123); // "A: 3.1, B: 123.45, C: 3" string str2 = string.Format("A:{0,4}, B:{1,-4}, C: {2:x}", 12, 34, 123); // "A: 12, B:34 , C: 7b"
str2のように、桁数の前に '-' を付けると左寄せとなる。この符号がないときは右寄せとなる。