はじめに
おそらくC#を扱っている方であればわかると思うのですが、ToStringメソッドを使うことによって変数などを文字列に変換することができます。ただ、ToStringメソッドは文字列に変換するだけでなく、文字列を状況に合わせてカスタマイズすることができます。
それを自分用のメモも含めて記録したいと思います
数値を3桁コンマ区切りにする
例えば次のようにToString("#, #")で変換すると3桁ごとにコンマを打ってくれます
double number = 1234567.89;
string formattedNumber = number.ToString("#,#");
Console.WriteLine(formattedNumber); // 1,234,567.89
※追記
以下の方法でも同じように記載することができると意見をいただきました!ゲームなどで使う場合は下のほうがわかりやすかったりするんですかね...
using System;
double number = 1234567.89;
Console.WriteLine($"{number:#,#}"); // 1,234,567.89
いただいた記事がこちらになります!もしよければご確認ください!自分も確認します!
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/custom-numeric-format-strinusing%20System;%20double%20number%20=%201234567.89;%20Console.WriteLine($%22%7Bnumber:#,#}%22);%20%20//%201,234,567.89s
ここで"#"は桁プレースホルダーと呼ばれ,対応する数字が存在する場合は置き換え、存在しない場合は表示しないようにします。
","は桁区切り記号及び数値位取り指定子の両方として機能していて、ローカライズされた桁区切り記号文字を挿入したり、指定されたコンマごとに、数値を1000で除算したりできるみたいです。
詳しくはこちらに載っています
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/custom-numeric-format-strings
また、3桁区切り以外にも便利な変換は以下の記事で紹介されているのでぜひご覧ください。
https://www.midnightunity.net/csharp-tostring-format/
おわりに
C#を使って数年経つんですが、なぜこんなことを知らなかったのか...という気持ちになっています(笑)。コードの可読性を上げるためにももっと勉強をしないといけませんね...