ngekoding/terbilang

一个将数字和货币转换为印尼文单词的库。

v1.0.2 2024-06-21 01:53 UTC

This package is auto-updated.

Last update: 2024-09-21 02:44:15 UTC


README

PHP Terbilang 是一个库,可以将数字或货币金额转换为它们的印尼文表示形式。

特性

  • 将数字值转换为印尼文单词。
  • 将货币金额(以卢比计)转换为单词。
  • 支持常规数字和货币的逗号作为小数分隔符。

安装

您可以通过 composer 安装

composer require ngekoding/terbilang

使用方法

基本使用方法

这是将常规数字转换为单词的方法

use Ngekoding\Terbilang\Terbilang;

echo Terbilang::convert(12345); // Outputs: "dua belas ribu tiga ratus empat puluh lima"
echo Terbilang::convert(12345.67); // Outputs: "dua belas ribu tiga ratus empat puluh lima koma enam tujuh"

然后传递第二个参数到 true 以用于货币金额

echo Terbilang::convert(12345, true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah"
echo Terbilang::convert(12345.67, true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah enam puluh tujuh sen"

选项

您可以自定义转换的十进制分隔符

// Convert with a custom decimal separator (e.g., ',')
echo Terbilang::convert('12345,67', true, ','); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah enam puluh tujuh sen"

// Or you can change it globally
Terbilang::setDecimalSeparator(',');

echo Terbilang::convert('12345,67'); // Outputs: "dua belas ribu tiga ratus empat puluh lima koma enam tujuh"
echo Terbilang::convert('12345,25', true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah dua puluh lima sen"

注意: 只会影响字符串输入。

高级使用方法

您可以使用数字或字符串输入,但在处理小数时有一些重要考虑。

对于 常规数字,当使用数字输入时,小数点后的尾随零不被保留。例如,数字 12345.500 将显示为 12345.5

特别是对于 货币金额,始终使用两位小数,以符合卢比标准。

要处理整个输入数字,包括小数点后的尾随零,请使用字符串输入。

echo Terbilang::convert(12345.50); // Outputs: "dua belas ribu tiga ratus empat puluh lima koma lima"
echo Terbilang::convert('12345.50'); // Outputs: "dua belas ribu tiga ratus empat puluh lima koma lima nol"
echo Terbilang::convert('12345.500'); // Outputs: "dua belas ribu tiga ratus empat puluh lima koma lima nol nol"

echo Terbilang::convert(12345.5, true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah lima puluh sen"
echo Terbilang::convert(12345.50, true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah lima puluh sen"
echo Terbilang::convert(12345.505, true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah lima puluh satu sen"
echo Terbilang::convert('12345.500', true); // Outputs: "dua belas ribu tiga ratus empat puluh lima rupiah lima ratus sen"

此外,使用字符串输入,您可以轻松传递已格式化的数字。

echo Terbilang::convert('Rp1.500.100,50', true, ','); // Outputs: "satu juta lima ratus ribu seratus rupiah lima puluh sen"

对于带有 ,00 小数的货币金额,将忽略小数部分,因为这是书写卢比的正确格式。

echo Terbilang::convert('Rp1.500.100,00', true, ','); // Outputs: "satu juta lima ratus ribu seratus rupiah"

API

Terbilang::convert($number, $isCurrency = false, $decimalSeparator = null)

将数字或货币金额转换为印尼文单词表示形式。

  • $number (mixed): 要转换的数字或货币金额。
  • $isCurrency (bool, optional): 转换是否为货币(默认:false)。
  • $decimalSeparator (string, optional): 数值中的十进制分隔符(默认:'.')。

参考

此库旨在遵守印尼语标准。

测试

composer test

贡献

请随意为此库做出贡献以提高其质量。将其分支出来,进行更改,并提交一个拉取请求。

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件