Barry Scott <ba...@barrys-emacs.org> writes: > On Friday, 4 January 2019 14:57:53 GMT Łukasz Stelmach wrote: >> >> I would like to present two pull requests[1][2] implementing fixed point >> presentation of numbers and ask for comments. The first is mine. I >> learnt about the second after publishing mine. >> >> The only format using decimal separator from locale data for >> float/complex/decimal numbers at the moment is "n" which behaves like >> "g". The drawback of these formats, I would like to overcome, is the >> inability to print numbers ranging more than one order of magnitude with >> the same number of decimal digits without "manually" (with some additional >> custom code) adjusting precission. The other option is to "manually" >> replace "." as printed by "f" with a local decimal separator. Neither of >> these option is appealing to my. >> >> Formatting 1.23456789 * n (LC_ALL=3Dpl_PL.UTF-8) >> >> | n | ".2f" | ".3n" | >> |---+----------+----------| >> | 1 | 1.23 | 1,23 | >> | 2 | 12.35 | 12,3 | >> | 3 | 123.46 | 123 | >> | 4 | 1234.57 | 1,23e+03 | > > Can you use locale.format_string() to solve this?
I am afraid I can't. I am using a library called pint[1] in my project. It allows me to choose how its objects are formated but it uses format() internally. It adds some custom extensions to format strings which, as far as I can tell, mekes it hard if not impossible to patch it to locale.format_string(). But this is rather an excuse. I thnik, had this problem some time ago and I got away with locale.format_string() then, but honestly I think format()/string.format/__format__ shuld support locale aware "f" just like there is "n" that behaves like "g". [1] http://pint.readthedocs.io/ -- Było mi bardzo miło. --- Rurku. --- ... >Łukasz< --- To dobrze, że mnie słuchasz.
signature.asc
Description: PGP signature
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/