Updated: Dec 23, 2020
WARNING! If you really want to know what's up with French numbers, make sure you read the Notes and Subtleties parts. Otherwise, just stick to the tables or you might end up hating the French language.
Numbers from 0 to 22:
17, 18 and 19 are literally translated as ten-seven, ten-eight and ten-nine. You must be careful not to forget the hyphen.
21 is literally translated as twenty and one. This also applies to 31, 41, 51 and 61. You may see these numbers written with hyphens: vingt-et-un in textbooks, videos, or articles. According to the 1990 spelling reform; the numbers should be written without hyphens. However, some people continue to use the old spelling.
22 is translated the same way as in English but don't forget the hyphen. This applies to 23, 24, 25, 26, 27, 28 and 29 (and again to the numbers 32-39; 42-49, 52-59; 62-69)
These numbers in context:
1. J'habite au numéro vingt. I live at number 20.
2. Mon numéro de téléphone c'est le 06 26 48 19 72 (zéro six, vingt-six, quarante-huit, dix-neuf, soixante-douze). My phone number is 06 26 48 19 72.
Notice how French people give numbers in pairs.
3. Elle a cinquante et un ans. She is 51.
Notice how French people use AVOIR to give their age. They also always include the word "ans".
Numbers 30 to 99:
70 does not follow the previous pattern. Instead French people say soixante-dix (literally sixty-ten).
This is not the case in Belgium or Switzerland, where 70 is septante and 90 is nonante. As for 80, huitante is used in Switzerland, whereas quatre-vingts tends to be used in Belgium with a few people using octante.
71 literally translates as sixty and eleven. The 'and' is dropped for 72 and an hyphen is used: soixante-douze. This will continue up to 79: soixante-dix-neuf (sixty-ten-nine)
80 literally translates as four-twenties (4 lots of twenties = 80).
81 literally translates as four-twenty-one. Notice that the 'and' has been dropped
90 literally translates as four-twenty-ten.
91: literally translates as four-twenty-eleven. No 'and' here either (unlike 71).