@@ -47,12 +47,8 @@ public function __construct(?DictionaryInterface $dictionary = null)
47
47
*/
48
48
public function toWords ($ number ): string
49
49
{
50
- if (! is_numeric ($ number )) {
51
- throw new InvalidArgumentException (sprintf ('Number arg (`%s`) must be numeric! ' , $ number ));
52
- }
53
-
54
- $ words = [];
55
50
[$ minus , $ number , $ decimal ] = $ this ->resolve ($ number );
51
+ $ words = [];
56
52
$ words [] = $ minus ? $ this ->dictionary ->minus () : '' ;
57
53
58
54
if (0 === $ number && 0 === $ decimal ) {
@@ -86,10 +82,10 @@ public function toWords($number): string
86
82
*/
87
83
public function toCurrency ($ number , $ unit = 'đồng ' ): string
88
84
{
89
- $ words = [];
90
- $ originNumber = $ number ;
91
85
$ unit = (array ) $ unit ;
86
+ $ originNumber = $ number ;
92
87
[$ minus , $ number , $ decimal ] = $ this ->resolve ($ number );
88
+ $ words = [];
93
89
94
90
if (0 === $ decimal || ! isset ($ unit [1 ])) {
95
91
$ words [] = $ this ->toWords ($ originNumber );
@@ -114,7 +110,11 @@ public function toCurrency($number, $unit = 'đồng'): string
114
110
*/
115
111
protected function resolve ($ number ): array
116
112
{
117
- $ number += 0 ; // trick xóa các số 0 lẻ sau cùng của phân số
113
+ if (! is_numeric ($ number )) {
114
+ throw new InvalidArgumentException (sprintf ('Number arg (`%s`) must be numeric! ' , $ number ));
115
+ }
116
+
117
+ $ number += 0 ; // trick xóa các số 0 lẻ sau cùng của phân số và xử lý kiểu số âm hoặc dương đối với input là chuỗi.
118
118
$ number = (string ) $ number ;
119
119
$ minus = '- ' === $ number [0 ];
120
120
0 commit comments