XFaost
Июнь 11, 2016 00:06:41
Как можно посчитать сколько цифр после точки (1.34000 и 1.45678)?
Shaman
Июнь 11, 2016 00:31:12
Смотря что за цифры, смотря что за точки.
JOHN_16
Июнь 11, 2016 00:57:04
>>> v = 1.45678
>>>
>>> len(str(v).split('.')[-1])
5
XFaost
Июнь 11, 2016 07:57:00
С “1.45678” - понятно и спасибо. А как бить с “1.34000”?
XFaost
Июнь 11, 2016 08:52:16
Я РЕШИЛ!
>>> from decimal import Decimal
>>> a = Decimal(1.50000)
>>> len(str(a).split('.')[-1])
5
FishHook
Июнь 11, 2016 09:29:34
>>>Я РЕШИЛ!
Обманываете!
Ответ не может быть 5, программа вернет 1
А еще больше вы удивитесь, если зададите a = Decimal(1.52332)
XFaost
Июнь 11, 2016 09:44:24
FishHook
>>>Я РЕШИЛ! Обманываете!Ответ не может быть 5, программа вернет 1А еще больше вы удивитесь, если зададите a = Decimal(1.52332)
простите! ошибся …
https://gyazo.com/bb8b3443238db394c0c1eefd64a75553>>> from decimal import Decimal
>>> a = Decimal('1.50000')
>>> len(str(a).split('.')[-1])
5
FishHook
Июнь 11, 2016 16:36:14
В этом виде ваша программа бессмысленна, нет ни малейшего смысла превращать строку в Decimal, чтобы тут же превратить её назад в строку, причем с потерей точности.
JOHN_16
Июнь 11, 2016 19:04:46
все просто. Нету такого числа 1.50000, есть 1.5 . Это математика, никакой магии. Вот если у вас есть строка “1.50000”, то другое дело. Иначе задача ни о чем.
FishHook
Июнь 11, 2016 20:38:27
JOHN_16
все просто. Нету такого числа 1.50000
Ну как бы “одна целая пятьдесят тысяч стотысячных”, такое число, безусловно, есть.