LoginSignup
2
2

More than 1 year has passed since last update.

ToStringメソッドでの書式指定

Last updated at Posted at 2021-04-02
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, '#')

:point_up:ポイント
第二引数(代替文字)は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**
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2