手遅れかもしれませんが、必要に応じてフォーマットされた数値を返す拡張メソッドを次に示します。
public static string ToShortString(this int n)
{
if (n >= 1e8)
{
return (Math.Round((double)n / 1e6, 0)).ToString() + "M";
}
else if (n >= 1e7)
{
return (Math.Round((double)n / 1e6, 1)).ToString() + "M";
}
else if (n >= 1e6)
{
return (Math.Round((double)n / 1e6, 2)).ToString() + "M";
}
else if (n >= 1e5)
{
return (Math.Round((double)n / 1e3, 0)).ToString() + "K";
}
else if (n >= 1e4)
{
return (Math.Round((double)n / 1e3, 1)).ToString() + "K";
}
else if (n >= 1e3)
{
return n.ToString("##,#");
}
else
{
return n.ToString();
}
}
テスト:
Console.WriteLine((5).ToShortString()); // displays 5
Console.WriteLine((55).ToShortString()); // displays 55
Console.WriteLine((555).ToShortString()); // displays 555
Console.WriteLine((5555).ToShortString()); // displays 5,555
Console.WriteLine((55555).ToShortString()); // displays 55.6K
Console.WriteLine((555555).ToShortString()); // displays 556K
Console.WriteLine((5555555).ToShortString()); // displays 5.56M
Console.WriteLine((55555555).ToShortString()); // displays 55.6M
Console.WriteLine((555555555).ToShortString()); // displays 556M