Как я изменяю свое плавание в два десятичных числа с запятой как разделитель десятичной точки в Python?

Почему сон? Вы не хотите спать, Вы хотите ожидать потоков для окончания.

Так

# store the threads you start in a your_threads list, then
for a_thread in your_threads:
    a_thread.join()

См.: thread.join

17
задан mskfisher 5 June 2012 в 12:32
поделиться

3 ответа

Чтобы получить два десятичных знака, используйте

'%.2f' % 1.2333333

Чтобы получить запятую, используйте replace () :

('%.2f' % 1.2333333).replace('.', ',')

Второй вариант - изменить языковой стандарт на место, где используется запятая, а затем использовать locale.format () :

locale.setlocale(locale.LC_ALL, 'FR')
locale.format('%.2f', 1.2333333)
15
ответ дан 30 November 2019 в 13:13
поделиться

Если вы не используете Не хочу возиться с локалью, вы, конечно, можете сделать форматирование самостоятельно. Это может служить отправной точкой:

def formatFloat(value, decimals = 2, sep = ","):
  return "%s%s%0*u" % (int(value), sep, decimals, (10 ** decimals) * (value - int(value)))

Обратите внимание, что при этом всегда будет усекаться дробная часть (т.е. 1.04999 будет печататься как 1,04).

2
ответ дан 30 November 2019 в 13:13
поделиться

Модуль локали может помочь вам с чтением и записью чисел в формате локали.

>>> import locale
>>> locale.setlocale(locale.LC_ALL, "")
'sv_SE.UTF-8'
>>> locale.format("%f", 2.2)
'2,200000'
>>> locale.format("%g", 2.2)
'2,2'
>>> locale.atof("3,1415926")
3.1415926000000001
8
ответ дан 30 November 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: