phpviet / number-to-words
支持将数字转换为文字的库。
1.3.0
2021-10-16 14:39 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ~7.5
- scrutinizer/ocular: ^1.5
README
数字转文字
信息
支持将数字转换为越南文字的库。
安装
通过 Composer 安装 Number To Words
composer require phpviet/number-to-words
用法
支持集成到当前流行的各种框架
或者如果您想使用非框架版本,请继续查看。
库的功能
将数字转换为文字
库提供了 PHPViet\NumberToWords\Transformer
类,通过该类的 toWords
方法进行转换。
use PHPViet\NumberToWords\Transformer; $transformer = new Transformer(); // âm năm $transformer->toWords(-5); // năm $transformer->toWords(5); // năm phẩy năm $transformer->toWords(5.5); // mười lăm $transformer->toWords(15); // một trăm linh năm $transformer->toWords(105); // bốn $transformer->toWords(4); // mười bốn $transformer->toWords(14); // hai mươi tư $transformer->toWords(24); // một trăm ba mươi tư $transformer->toWords(134); // một $transformer->toWords(1); // một // mười một $transformer->toWords(11); // hai mươi mốt $transformer->toWords(21); // một trăm nghìn không trăm hai mươi mốt. $transformer->toWords(100021); // một trăm ba mươi mốt triệu không trăm năm mươi nghìn không trăm ba mươi lăm $transformer->toWords(131050035);
将数字转换为货币
与数字转文字的用法相同,我们使用 PHPViet\NumberToWords\Transformer
类来执行任务。
use PHPViet\NumberToWords\Transformer; $transformer = new Transformer(); // năm triệu sáu trăm chín mươi nghìn bảy trăm đồng $transformer->toCurrency(5690700); // chín mươi lăm triệu năm trăm nghìn hai trăm đồng $transformer->toCurrency(95500200); // tám trăm năm mươi tư triệu chín trăm đồng $transformer->toCurrency(854000900);
在某些货币中,您需要根据换算单位改变读数方式,例如 1 美元 = 100 美分。
use PHPViet\NumberToWords\Transformer; // Đặt số chữ số phần thập phân (tham số đầu tiên Dictionary có thể null) $transformer = new Transformer(null, 2); // năm mươi sáu đô chín mươi xen, thay vì năm mươi sáu đô chín xen $transformer->toCurrency(56.90);
此外,我们还可以通过 toCurrency
方法的第二个参数使用其他货币单位,其中数组的第一个元素是整数部分的单位,后面跟着分数的单位。
use PHPViet\NumberToWords\Transformer; $transformer = new Transformer(); // sáu nghìn bảy trăm bốn mươi hai đô bảy xen $transformer->toCurrency(6742.7, ['đô', 'xen']); // chín nghìn bốn trăm chín mươi hai đô mười lăm xen $transformer->toCurrency(9492.15, ['đô', 'xen']); // tám nghìn ba trăm sáu mươi mốt đô bốn xen $transformer->toCurrency('8361.40', ['đô', 'xen']);
改变读数方式
除了标准读数方式外,库还提供了 PHPViet\NumberToWords\SouthDictionary
类,帮助我们以南方风格读取数字。
use PHPViet\NumberToWords\Transformer; use PHPViet\NumberToWords\SouthDictionary; $transformer = new Transformer(); $southDictionary = new SouthDictionary(); $southTransformer = new Transformer($southDictionary); $transformer->toWords(101); // một trăm linh một $southTransformer->toWords(101); // một trăm lẻ một $transformer->toWords(1000); // một nghìn $southTransformer->toWords(1000); // một ngàn $transformer->toWords(24) // hai mươi tư $southTransformer->toWords(24); // hai mươi bốn $transformer->toCurrency(124001); // một trăm hai mươi tư nghìn không trăm linh một $southTransformer->toCurrency(124001); // một trăm hai mươi bốn ngàn không trăm lẻ một
如果您想根据您的意愿改变读数方式,请创建一个继承自 PHPViet\NumberToWords\Dictionary
的 Dictionary
类或实现 PHPViet\NumberToWords\DictionaryInterface
抽象类。
use PHPViet\NumberToWords\Dictionary; use PHPViet\NumberToWords\Transformer; class MyDictionary extends Dictionary { /** * @inheritDoc */ public function specialTripletUnitFive(): string { return 'nhăm'; } } $transformer = new Transformer(); $myDictionary = new MyDictionary(); $myTransformer = new Transformer($myDictionary); $transformer->toWords(15); // mười lăm $myTransformer->toWords(15); // mười nhăm
面向开发者
如果您觉得这个库还有不足或错误,并且想共同开发,我们非常欢迎!请创建 issue
来为下一个版本提供想法或创建 PR
来贡献。感谢!