Форум сайта python.su
0
Как можно посчитать сколько цифр после точки (1.34000 и 1.45678)?
Офлайн
88
Смотря что за цифры, смотря что за точки.
Отредактировано Shaman (Июнь 11, 2016 18:41:32)
Офлайн
221
>>> v = 1.45678 >>> >>> len(str(v).split('.')[-1]) 5
Офлайн
0
С “1.45678” - понятно и спасибо. А как бить с “1.34000”?
Офлайн
0
Я РЕШИЛ!
>>> from decimal import Decimal >>> a = Decimal(1.50000) >>> len(str(a).split('.')[-1]) 5
Отредактировано XFaost (Июнь 11, 2016 09:14:49)
Офлайн
568
>>>Я РЕШИЛ!
Обманываете!
Ответ не может быть 5, программа вернет 1
А еще больше вы удивитесь, если зададите a = Decimal(1.52332)
Офлайн
0
FishHookпростите! ошибся …
>>>Я РЕШИЛ! Обманываете!Ответ не может быть 5, программа вернет 1А еще больше вы удивитесь, если зададите a = Decimal(1.52332)
>>> from decimal import Decimal >>> a = Decimal('1.50000') >>> len(str(a).split('.')[-1]) 5
Отредактировано XFaost (Июнь 11, 2016 09:46:21)
Офлайн
568
В этом виде ваша программа бессмысленна, нет ни малейшего смысла превращать строку в Decimal, чтобы тут же превратить её назад в строку, причем с потерей точности.
Офлайн
221
все просто. Нету такого числа 1.50000, есть 1.5 . Это математика, никакой магии. Вот если у вас есть строка “1.50000”, то другое дело. Иначе задача ни о чем.
Офлайн
568
JOHN_16Ну как бы “одна целая пятьдесят тысяч стотысячных”, такое число, безусловно, есть.
все просто. Нету такого числа 1.50000
Офлайн