Skip to content

Commit d241216

Browse files
committed
Add more units for formatting
1 parent ed523e0 commit d241216

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

StringMatcher/StringMatcher.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,23 @@ std::string format_with_commas(long long number) {
1616

1717
std::string format_large_number(double number) {
1818
std::ostringstream oss;
19-
if (number >= 1'000'000'000) {
20-
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000.0) << "B";
19+
if (number >= 1'000'000'000'000'000'000) {
20+
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000'000'000'000.0) << "Sp"; // septillion, anything past this is just wild
21+
}
22+
else if (number >= 1'000'000'000'000'000) {
23+
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000'000'000.0) << "Sx"; // sextillion
24+
}
25+
else if (number >= 1'000'000'000'000) {
26+
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000'000.0) << "Qn"; // quintillion
27+
}
28+
else if (number >= 1'000'000'000) {
29+
oss << std::fixed << std::setprecision(3) << (number / 1'000'000'000.0) << "T"; // trillion
2130
}
2231
else if (number >= 1'000'000) {
23-
oss << std::fixed << std::setprecision(3) << (number / 1'000'000.0) << "M";
32+
oss << std::fixed << std::setprecision(3) << (number / 1'000'000.0) << "M"; // million
2433
}
2534
else if (number >= 1'000) {
26-
oss << std::fixed << std::setprecision(3) << (number / 1'000.0) << "K";
35+
oss << std::fixed << std::setprecision(3) << (number / 1'000.0) << "K"; // thousand
2736
}
2837
else {
2938
oss << format_with_commas(static_cast<long long>(number));

0 commit comments

Comments
 (0)