Add more units for formatting

This commit is contained in:
Lncvrt committed 2024-09-12 13:03:14 -07:00
1 parent ed523e0f49
commit d24121639a
1 file changed
+13 -4
+13 -4
View File
@@ -16,14 +16,23 @@ std::string format_with_commas(long long number) {
std::string format_large_number(double number) {
std::ostringstream oss;
if (number >= 1'000'000'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000.0) << "B";
if (number >= 1'000'000'000'000'000'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000'000'000'000.0) << "Sp"; // septillion, anything past this is just wild
}
else if (number >= 1'000'000'000'000'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000'000'000.0) << "Sx"; // sextillion
}
else if (number >= 1'000'000'000'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000'000.0) << "Qn"; // quintillion
}
else if (number >= 1'000'000'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000.0) << "T"; // trillion
}
else if (number >= 1'000'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000'000.0) << "M";
oss << std::fixed << std::setprecision(3) << (number / 1'000'000.0) << "M"; // million
}
else if (number >= 1'000) {
oss << std::fixed << std::setprecision(3) << (number / 1'000.0) << "K";
oss << std::fixed << std::setprecision(3) << (number / 1'000.0) << "K"; // thousand
}
else {
oss << format_with_commas(static_cast<long long>(number));