On 6/23/18 11:44 AM, Steven D'Aprano wrote: > On Sat, 23 Jun 2018 08:12:52 -0400, Richard Damon wrote: > >> On 6/23/18 7:46 AM, Steven D'Aprano wrote: >>> On Sat, 23 Jun 2018 06:26:22 -0400, Richard Damon wrote: >>> >>>> If you know the Locale, then you do know what the decimal separator >>>> is, as that is part of what a locale defines. >>> A locale defines a set of common cultural conventions. It doesn't >>> mandate the actual conventions in use in any specific document. >>> >>> If I'm in Australia, using the en-AU locale, nevertheless I can >>> generate a file using , as a decimal separator. Try and stop me :-) >> yes, you can MIS-use the en-AU locale and write 1,000 to mean the number >> One, just as you can misuse the language and write cat when you mean a >> member of the Canine group, > How about if I write "le chien" or "der Hund" or "собака"? Is that also a > misuse of the locale because I choose to write in a foreign language, > using foreign conventions for spelling, grammar and syntax? > > >> but then the misinterpretation is on the >> creator of the document, not on the program that was told how the >> document is to be read. > You're assuming that there will be a misinterpretation. That's an absurd > assumption to make. There might be, of course, but the documentation for > my document might be clear that comma is to be used for decimal > separators. Or it might include numbers like > > 1.234.567,012345678 > > which is understandable to anyone who is aware of the possibility that > comma may mean decimal separator and period the thousands separator. > Then I shouldn't be using en-AU to decode the file. If I use a locale based parser, I need to give it the right locale.
Now, if I have a parser that doesn't use the locale, but some other rule base than I just need to provide it with the right rules, which is basically just defining the right locale. -- Richard Damon -- https://mail.python.org/mailman/listinfo/python-list