jaraco / inflect

Correctly generate plurals, ordinals, indefinite articles; convert numbers to words
https://pypi.org/project/inflect
MIT License
957 stars 107 forks source link

number_to_words, group==2 and 3 digit numbers #217

Open FredSRichardson opened 2 months ago

FredSRichardson commented 2 months ago

The current behavior for three digit numbers with group==2 is to split between the first two and last number. For example:

>>> p.number_to_words('123', group=2)
'twelve, three'
>>>

It is more common - at least in American English - to split after the first digit which would return 'one twenty-three'.

I realize a group is an arbitrary split, but I'm not sure the current behavior - at least for 3 digit numbers - reflects any common usage.

I realize there are a few other slightly inconvenient was to accomplish the same thing:

>>> ' '.join([p.number_to_words('1'), p.number_to_words('23')])
'one twenty-three'
>>> p.number_to_words('123').replace('hundred and ', '')
'one twenty-three'
>>>
jaraco commented 6 days ago

I tend to agree; I'd expect numbers to be grouped from least significant to most, then read from most to least.

Would you be interested in working on a PR to effect the change?

NFeruch commented 3 days ago

@jaraco I'm interesting in contributing but there's no contributing.md file so I don't know how to setup my local environment correctly or run unit tests. How should I proceed?

jaraco commented 2 days ago

@NFeruch This project is hosted under the skeleton philosophy. There's some contributing guidance there. I have plans to make that guidance more visible and complete, but it should get you started. tl;dr - install tox somewhere and run it.