Convert a number 0–999 to English words.
(n: int)
| 42 | |
| 43 | |
| 44 | def _three_digits_to_words(n: int) -> str: |
| 45 | """Convert a number 0–999 to English words.""" |
| 46 | if n == 0: |
| 47 | return "" |
| 48 | parts = [] |
| 49 | hundreds = n // 100 |
| 50 | remainder = n % 100 |
| 51 | if hundreds: |
| 52 | parts.append(f"{_ONES[hundreds]} hundred") |
| 53 | if remainder < 20: |
| 54 | if remainder: |
| 55 | parts.append(_ONES[remainder]) |
| 56 | else: |
| 57 | tens_word = _TENS[remainder // 10] |
| 58 | ones_word = _ONES[remainder % 10] |
| 59 | parts.append(f"{tens_word}-{ones_word}" if ones_word else tens_word) |
| 60 | return " ".join(parts) |
| 61 | |
| 62 | |
| 63 | def number_to_words(n: int) -> str: |