improve formatting of numbers

This commit is contained in:
Florian Stinglmayr 2022-01-22 13:17:52 +01:00
parent 4e14f781d8
commit ff41f79dd8

View File

@ -3,13 +3,25 @@
namespace EDJournal { namespace EDJournal {
public class Credits { public class Credits {
public static string FormatCredits(int amount) { public static string FormatCredits(int amount) {
return FormatCredits((long)amount);
}
public static string FormatCredits(long amount) {
var format = new CultureInfo(CultureInfo.CurrentCulture.Name, true).NumberFormat; var format = new CultureInfo(CultureInfo.CurrentCulture.Name, true).NumberFormat;
format.NumberGroupSeparator = ","; format.NumberGroupSeparator = ",";
format.NumberDecimalSeparator = ".";
format.NumberGroupSizes = new int[1] { 3 }; format.NumberGroupSizes = new int[1] { 3 };
format.NumberDecimalDigits = 0; format.NumberDecimalDigits = 1;
if (amount > 0 && (amount % 1000000) == 0) { if (amount > 0 && (amount % 1000000000) == 0) {
amount /= 1000000000;
return string.Format("{0}M CR", amount.ToString("N", format));
} else if (amount > 0 && (amount % 1000000) == 0) {
amount /= 1000000; amount /= 1000000;
return string.Format("{0}M CR", amount.ToString("N", format)); return string.Format("{0}M CR", amount.ToString("N", format));
} else if (amount > 0 && (amount % 100000) == 0) {
double am = ((double)amount) / 1000000;
format.NumberDecimalDigits = 1;
return string.Format("{0}M CR", am.ToString("N", format));
} else if (amount > 0 && (amount % 1000) == 0) { } else if (amount > 0 && (amount % 1000) == 0) {
amount /= 1000; amount /= 1000;
return string.Format("{0}K CR", amount.ToString("N", format)); return string.Format("{0}K CR", amount.ToString("N", format));