数値ヘルパー

数値ヘルパーファイルには、ロケールを意識した方法で数値データを操作するのに役立つ関数が含まれています。

このヘルパーの読み込み

このヘルパーは、次のコードを使用して読み込まれます

<?php

helper('number');

問題が発生した場合

PHP の国際化および地域化ロジックが、指定されたロケールと言語オプションで提供された値を処理できない場合、BadFunctionCallException() がスローされます。

利用可能な関数

以下の関数が利用可能です

number_to_size($num[, $precision = 1[, $locale = null]])
パラメータ:
  • **$num** (mixed) – バイト数

  • **$precision** (int) – 浮動小数点精度

戻り値:

フォーマットされたデータサイズ文字列、または提供された値が数値でない場合は false

戻り値の型:

文字列

数値をサイズに基づいてバイトとしてフォーマットし、適切な接尾辞を追加します。例

<?php

echo number_to_size(456); // Returns 456 Bytes
echo number_to_size(4567); // Returns 4.5 KB
echo number_to_size(45678); // Returns 44.6 KB
echo number_to_size(456789); // Returns 447.8 KB
echo number_to_size(3456789); // Returns 3.3 MB
echo number_to_size(12345678912345); // Returns 1.8 GB
echo number_to_size(123456789123456789); // Returns 11,228.3 TB

オプションの2番目のパラメーターを使用すると、結果の精度を設定できます

<?php

echo number_to_size(45678, 2); // Returns 44.61 KB

オプションの3番目のパラメーターを使用すると、数値の生成時に使用するロケールを指定できます。ロケールを指定しないと、リクエストが分析され、ヘッダーまたはアプリケーションのデフォルトから適切なロケールが取得されます

<?php

// Generates 11.2 TB
echo number_to_size(12345678912345, 1, 'en_US');
// Generates 11,2 TB
echo number_to_size(12345678912345, 1, 'fr_FR');

注意

この関数によって生成されるテキストは、次の言語ファイルにあります。 *language/<your_lang>/Number.php*

number_to_amount($num[, $precision = 1[, $locale = null])
パラメータ:
  • **$num** (mixed) – フォーマットする数値

  • **$precision** (int) – 浮動小数点精度

  • **$locale** (string) - フォーマットに使用するロケール

戻り値:

人間が読めるバージョンの文字列、または提供された値が数値でない場合は false

戻り値の型:

文字列

数値を、123.4兆のような人間が読めるバージョンに変換します。京までの数値に対応します。例

<?php

echo number_to_amount(123456); // Returns 123 thousand
echo number_to_amount(123456789); // Returns 123 million
echo number_to_amount(1234567890123, 2); // Returns 1.23 trillion
echo number_to_amount('123,456,789,012', 2); // Returns 123.46 billion

オプションの2番目のパラメーターを使用すると、結果の精度を設定できます

<?php

echo number_to_amount(45678, 2); // Returns 45.68 thousand

オプションの3番目のパラメーターでロケールを指定できます

<?php

echo number_to_amount('123,456,789,012', 2, 'de_DE'); // Returns 123,46 billion
number_to_currency($num, $currency[, $locale = null[, $fraction = 0]])
パラメータ:
  • **$num** (float) – フォーマットする数値

  • **$currency** (string) – 通貨の種類 (USD、EUR など)

  • **$locale** (string|null) – フォーマットに使用するロケール

  • **$fraction** (integer) – 小数点以下の桁数

戻り値:

ロケールに応じた適切な通貨で表された数値

戻り値の型:

文字列

USD、EUR、GBP などの一般的な通貨形式の数値を変換します

<?php

echo number_to_currency(1234.56, 'USD', 'en_US', 2);  // Returns $1,234.56
echo number_to_currency(1234.56, 'EUR', 'de_DE', 2);  // Returns 1.234,56 €
echo number_to_currency(1234.56, 'GBP', 'en_GB', 2);  // Returns £1,234.56
echo number_to_currency(1234.56, 'YEN', 'ja_JP', 2);  // Returns YEN 1,234.56

ロケールを指定しない場合は、リクエストロケールが使用されます。

number_to_roman($num)
パラメータ:
  • **$num** (int|string) – 変換する数値

戻り値:

指定されたパラメータから変換されたローマ数字

戻り値の型:

string|null

数値をローマ数字に変換します

<?php

echo number_to_roman(23);    // Returns XXIII
echo number_to_roman(324);   // Returns CCCXXIV
echo number_to_roman(2534);  // Returns MMDXXXIV

この関数は、1 から 3999 の範囲の数値のみを処理します。この範囲外の値の場合は null を返します。