Skip to content

Number Helpers ​

Larastvel's Number provides a set of static helper methods for numeric formatting, ordinal generation, file size display, and more.

Basic Formatting ​

rust
use larastvel_core::Number;

Number::format(1234567.89, 2);  // "1,234,567.89"
Number::format(1000.0, 0);      // "1,000"
Number::format(-1234.5, 2);     // "-1,234.50"

Rounding ​

rust
Number::round(5.456, 2);  // 5.46
Number::floor(5.7);        // 5.0
Number::ceil(5.2);         // 6.0
Number::clamp(15.0, 1.0, 10.0);  // 10.0

Percentages ​

rust
Number::percentage(50.0, 200.0, 2);  // "25.00%"
Number::percentage(25.0, 100.0, 0);  // "25%"

Ordinals ​

rust
Number::ordinal(1);    // "1st"
Number::ordinal(2);    // "2nd"
Number::ordinal(3);    // "3rd"
Number::ordinal(11);   // "11th"
Number::ordinal(21);   // "21st"
Number::ordinal(101);  // "101st"

File Size ​

rust
Number::file_size(500, 2);         // "500.00 B"
Number::file_size(1024, 2);        // "1.00 KB"
Number::file_size(1536, 1);        // "1.5 KB"
Number::file_size(1048576, 2);     // "1.00 MB"
Number::file_size(1073741824, 2);  // "1.00 GB"

Number Abbreviation ​

rust
Number::abbreviate(2500.0, 1);          // "2.5K"
Number::abbreviate(2500000.0, 2);       // "2.50M"
Number::abbreviate(2500000000.0, 2);    // "2.50B"
Number::abbreviate(2500000000000.0, 2); // "2.50T"
Number::abbreviate(-2500.0, 1);         // "-2.5K"

Currency ​

rust
Number::currency(100.0, "USD");   // "$100.00"
Number::currency(50.5, "EUR");    // "€50.50"
Number::currency(25.0, "GBP");    // "£25.00"
Number::currency(1000.0, "JPY");  // "¥1000.00"
Number::currency(99.99, "INR");   // "₹99.99"

Supports: USD, EUR, GBP, JPY, CNY, KRW, INR, RUB, BRL, CHF, SEK, NOK, DKK, PLN, TRY, MXN, ZAR, PHP, MYR, THB, IDR, VND, AUD, CAD, NZD, SGD, HKD.

Human Readable ​

rust
Number::for_humans(500.0, 2);              // "500.00"
Number::for_humans(1500.0, 1);             // "1.5 thousand"
Number::for_humans(2500000.0, 2);          // "2.50 million"
Number::for_humans(3000000000.0, 2);       // "3.00 billion"
Number::for_humans(4000000000000.0, 2);    // "4.00 trillion"

Available Methods ​

MethodReturnsDescription
format(num, precision)StringFormat number with thousands separators
round(num, precision)f64Round to precision
floor(num)f64Round down
ceil(num)f64Round up
clamp(num, min, max)f64Clamp within range
percentage(numerator, denominator, precision)StringCalculate percentage
ordinal(num)StringAdd ordinal suffix (1st, 2nd, 3rd)
file_size(bytes, precision)StringHuman-readable file size
abbreviate(num, precision)StringAbbreviate with K/M/B/T
currency(num, currency)StringFormat as currency
for_humans(num, precision)StringHuman-readable large numbers

Released under the MIT License.