ngekoding / terbilang
一个将数字和货币转换为印尼文单词的库。
v1.0.2
2024-06-21 01:53 UTC
Requires
- php: >=5.6
Requires (Dev)
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)。有关更多信息,请参阅 许可文件。