MRが楽しい

MRやVRについて学習したことを書き残す

C#で3桁ごとにカンマを表示する形式で数値を文字列表示する

本日はC#の小ネタ枠です。
3桁ごとにカンマを表示する形式で数値を文字列表示する方法についてです。

3桁ごとにカンマを表示する形式で数値を文字列表示する

3桁ごとにカンマを表示する形式で数値を文字列表示するには ToString か String.Format を利用する方法があります。

ToStringを用いる場合

ToStringを用いる場合は書式指定子 N を使用することで3桁ごとにカンマを挿入した文字列に変換できます。
N0の場合、小数点以下は表示されず整数で表示されます。

int value = 1234;
string result = value.ToString("N0");

String.Formatを用いる場合

String.Formatを用いる場合は書式指定項目に {0:#,0} を使用することで3桁ごとにカンマを挿入した文字列に変換できます。
{0:#,0} は指定された数値の整数部分の数値グループ(3桁ごとの数値)の間に桁区切り文字 ,(カンマ) を挿入することを意味します。

int value = 1234;
string result = String.Format("{0:#,0}", value);

サンプルスクリプト

それぞれの方法を使うサンプルスクリプトを作成して動作を確認してみます。
・CommaPointTest.cs

using System;
using TMPro;
using UnityEngine;

public class CommaPointTest : MonoBehaviour
{
    [SerializeField] TMP_Text _text1;
    [SerializeField] TMP_Text _text2;
    [SerializeField] TMP_Text _text3;
    [SerializeField] TMP_Text _text4;
    
    void Start()
    {
        _text1.text = GetCommaStringByToString(1234);
        _text2.text = GetCommaStringByToString(1234567);
        _text3.text = GetCommaStringByStringFormat(1234);
        _text4.text = GetCommaStringByStringFormat(1234567);
    }
    
    private string GetCommaStringByToString(int value)
    {
        return value.ToString("N0");
    }
    
    private string GetCommaStringByStringFormat(int value)
    {
        return String.Format("{0:#,0}", value);
    }
}

以下の通り、どちらの方法でも3桁ごとにカンマを表示する形式で数値を文字列表示できました。