ToStringメソッドでの書式指定
C#などで数字を文字列に変える場合にToString()メソッドをよく使いますが、引数をいれることにより書式を指定することができます。
下に書式の指定の方法とその例を紹介します。
1.0 標準書式
指定子 | 種類 | 説明 | 使用例 ()内の数字を変換 |
---|---|---|---|
"c"または"C" | 通貨型 | 数字は小数のけた数 けた数より下は四捨五入 |
例1 (12345).ToString("c") --> ¥12,345 例2 (1234.567).ToString("C1") --> ¥1,234.6 |
"d"または"D" | 整数型 | 整数のみ対応可 数字はけた数 |
例1 (123).ToString("d5") --> 00123 例2 (-12).ToString("D4") --> -0012 |
"e"または"E" | 指数型 | 指定子の小文字、大文字で指数部"e"または"E" を指定可 数字は小数部のけた数(なければ6けた) |
例1 (123.56).ToString("e") --> 1.2356e+002 例2 (-0.1256).ToString("E2") --> -1.26E-001 |
"f"または"F" | 小数型 | 数字は小数のけた数 けた数より下は四捨五入 指定なければ小数2けた |
例1 (123.45678).ToString("f") --> 123.46 例2 (0.1).ToString("F4") --> 0.1000 |
その他G(有効けた数)、N(区切り)、P(パーセント)、X(16進数)などいろいろあります。
2.0 カスタム書式
指定子 | 種類 | 説明 | 使用例 ()内の数字を変換 |
---|---|---|---|
"0" | ゼロ型 | 対応するけたを0でうめる 数字がないところは0 |
例1 (123).ToString("00000") --> 00123 例2 (123.456).ToString("00.00") --> 123.46 |
"#" | けた型 | 対応するけたを#でうめる 数字がないところは表示されない |
例1 (123).ToString("#####") --> 123 例2 (0.456).ToString("##.##") --> .46 |
"," | 区切り | 0または#の間に,がある時はカンマで区切りをする | 例1 (123456789).ToString("#,0") --> 123,456,789 |
その他 | [ ] や : など記号、文字はそのまま表示 | 例1 (123456).ToString("[##:##:##]") --> [12:34:56] 例2 (123.456).ToString("##.##円") -->123.46円 |
3.0 空白埋め、0埋め、指定文字埋め
PadLeft()、PadRight()関数を使えば左から(右から)指定で文字埋めができます。これを使えば空白埋めや0埋めができます。
PadLeft()、PadRight()は、第一引数はけた数、第二引数はCharで代替文字を設定できます。
例 value.ToString().PadLeft(5, '#')
ポイント
第二引数(代替文字)はCharとなりますので""(ダブルクオート)ではなく''(シングルクオート)で囲みます。
4.0 スクリプト
test.cs
int i = 0; // int型数値代入用(初期値は0としている)
float f = 0f; // float型数値代入用(初期値は0としている)
// 通貨型
i = 12345;
Debug.Log(i.ToString("c")); // ¥12,345
f = 1234.567f;
Debug.Log(f.ToString("C1")); // ¥1,234.6
// 整数型
i = 123;
Debug.Log(i.ToString("d5")); // 00123
i = -12;
Debug.Log(i.ToString("D4")); // -0012
// 指数型
f = 123.56f;
Debug.Log(f.ToString("e")); // 1.235600e+002
f = -0.1256f;
Debug.Log(f.ToString("E2")); // -1.26E-001
// 小数型
f = 123.45678f;
Debug.Log(f.ToString("f")); // 123.46
f = 0.1f;
Debug.Log(f.ToString("F4")); // 0.1000
// ゼロ型
i = 123;
Debug.Log(i.ToString("00000")); // 00123
f = 123.456f;
Debug.Log(f.ToString("00.00")); // 123.46
// けた型
i = 123;
Debug.Log(i.ToString("#####")); // 123
f = 0.456f;
Debug.Log(f.ToString("##.##")); // .46
// 区切り
i = 123456789;
Debug.Log(i.ToString("#,0")); // 123,456,789
// その他
i = 123456;
Debug.Log(i.ToString("[##:##:##]")); // [12:34:56]
f = 123.456f;
Debug.Log(f.ToString("##.##円")); // 123.46円
// 指定文字埋め
int i = 123;
Debug.Log(i.ToString().PadLeft(5, '#')); // ##123
Debug.Log(i.ToString().PadLeft(5, ' ')); // 123 (123の前に2つの空白)
Debug.Log(i.ToString().PadRight(5, '*'));// 123**
Author And Source
この問題について(ToStringメソッドでの書式指定), 我々は、より多くの情報をここで見つけました https://qiita.com/yuyujiteki/items/ec26cf9f90c3b63332f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .