summaryrefslogtreecommitdiff
path: root/AK/NumberFormat.cpp
diff options
context:
space:
mode:
authorArda Cinar <kuzux92@gmail.com>2022-12-15 16:31:38 +0300
committerSam Atkins <atkinssj@gmail.com>2023-01-02 20:11:18 +0000
commit0dbb1be81c44af99dc8740f6b614976731a4bec8 (patch)
treeaa10b2c9b12acd2b3ec0054ea21653610218c63d /AK/NumberFormat.cpp
parentccb6b4f943b51be496d0f1d6499bf7153e12e20d (diff)
downloadserenity-0dbb1be81c44af99dc8740f6b614976731a4bec8.zip
AK: Add an option to format numbers with 1000 based units
Instead of only allowing 1024-based units.
Diffstat (limited to 'AK/NumberFormat.cpp')
-rw-r--r--AK/NumberFormat.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/AK/NumberFormat.cpp b/AK/NumberFormat.cpp
index 66d41cf357..89a8b2d7d8 100644
--- a/AK/NumberFormat.cpp
+++ b/AK/NumberFormat.cpp
@@ -23,12 +23,12 @@ static DeprecatedString number_string_with_one_decimal(u64 number, u64 unit, Str
return DeprecatedString::formatted("{}.{} {}", integer_part, decimal_part, suffix);
}
-DeprecatedString human_readable_quantity(u64 quantity, StringView unit)
+DeprecatedString human_readable_quantity(u64 quantity, HumanReadableBasedOn based_on, StringView unit)
{
- constexpr u64 size_of_unit = 1024;
+ u64 size_of_unit = based_on == HumanReadableBasedOn::Base2 ? 1024 : 1000;
constexpr auto unit_prefixes = AK::Array { "", "K", "M", "G", "T", "P", "E" };
auto full_unit_suffix = [&](int index) {
- auto binary_infix = (size_of_unit == 1024 && index != 0) ? "i"sv : ""sv;
+ auto binary_infix = (based_on == HumanReadableBasedOn::Base2 && index != 0) ? "i"sv : ""sv;
return DeprecatedString::formatted("{}{}{}",
unit_prefixes[index], binary_infix, unit);
};
@@ -51,9 +51,9 @@ DeprecatedString human_readable_quantity(u64 quantity, StringView unit)
size_of_current_unit, full_unit_suffix(unit_prefixes.size() - 1));
}
-DeprecatedString human_readable_size(u64 size)
+DeprecatedString human_readable_size(u64 size, HumanReadableBasedOn based_on)
{
- return human_readable_quantity(size, "B"sv);
+ return human_readable_quantity(size, based_on, "B"sv);
}
DeprecatedString human_readable_size_long(u64 size)