開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. PHP >
  4. Laravel >
  5. 【Laravel】Numberクラスで数値をフォーマット
no-image

【Laravel】Numberクラスで数値をフォーマット

こんにちは、おさむちゃんです。
今回はLaravelのIlluminate\Support\Numberクラスの紹介です。
Numberクラスは数値をさまざまな形式でフォーマットするための便利なユーティリティクラスです。
このクラスはLaravel 10.33で導入され、以降のバージョンでアップデートされています。
以下にNumberクラスの使用方法について、いくつか使用例を記載します。

環境

- PHP: 8.2
- Laravel Framework: 10.44
 

Number::format()

数値を指定されたロケールに従ってフォーマットします。
デフォルトはカンマ区切りです。
use Illuminate\Support\Number;

echo Number::format(1234567); // 1,234,567
// 小数点以下の指定
echo Number::format(1234.5678, 2); // 1,234.57

Number::spell()

数値を指定されたロケールの言葉にフォーマットします。
デフォルトは英語です。
echo Number::spell(123); // one hundred twenty-three
echo Number::spell(123, 'ja_JP'); // 百二十三

Number::ordinal()

数値を序数の形式にフォーマットします。
デフォルトは英語です。
echo Number::ordinal(1); // 1st
echo Number::ordinal(2); // 2nd
echo Number::ordinal(12); // 12th
echo Number::ordinal(1, 'ja_JP'); // 第1

Number::percentage()

数値をパーセンテージ形式にフォーマットします。
echo Number::percentage(12); // 12%
// 小数点以下の指定
echo Number::percentage(12, 2); // 12.00%
echo Number::percentage(12.34, 1); // 12.3%

Number::currency()

数値を指定した通貨形式にフォーマットします。
デフォルトはUSDです。
echo Number::currency(123456); // $123,456.00
echo Number::currency(123456, 'JPY'); // ¥123,456

Number::fileSize()

バイト数をファイルサイズの単位にフォーマットします。
echo Number::fileSize(1024); // 1 KB
// 小数点以下の指定
echo Number::fileSize(1234567, 2); // 1.18 MB

Number::abbreviate()

数値を短縮形にフォーマットします。
echo Number::abbreviate(123456); // 123K
// 小数点以下の指定
echo Number::abbreviate(123456789, 1); // 123.5M

Number::clamp()

数値を指定された範囲内に制限します。
echo Number::clamp(5, 0, 10); // 5
echo Number::clamp(-5, 0, 10); // 0
echo Number::clamp(50, 0, 10); // 10

Number::useLocale()

デフォルトのロケールを設定します。
Number::useLocale('ja_JP');

echo Number::spell(123); // 百二十三
echo Number::ordinal(1); // 第1

注意点

Numberクラスを使用する際は、国際化用拡張モジュール intl をインストールしておく必要があります。

参考

https://readouble.com/laravel/10.x/ja/helpers.html#method-number-abbreviate
https://laravel-news.com/laravel-number-utility-class
https://github.com/laravel/framework/blob/10.x/src/Illuminate/Support/Number.php
https://www.php.net/manual/ja/book.intl.php
TOPに戻る