Сергей, не, ну notepad++ наше всё, тупой но реактивный блокнот для всех типов файлов ). Особенно проникаешься когда открываешь им тяжеленный csv за секунду после пол дня ожидания MS Office ))
Спасибо за совет перейти на VS Code, действительно брендовая вештчь для перехода с Brackets, запуск без танцев с бубном. Даже тема интерфейса глаза не ломает с коробки, что большая редкость.
kamenyuga, ну никогда не поздно и не постыдно раздвигать границы своих "ограниченных возможностей", за тем мы и на Хабре, правда? )
Не расслабляйтесь, вот вам 324 знака после запятой в float
shurshur,
Я же вроде понятно дал формальные требования для пути к решению задачи. Первый пост, после UPD:
Например путем поиска регулярными выражениями пяти девяток или нулей. Да, конвертация в строку и обратно накладно, не лучшее решение, но хоть какое -то.
Roman Kitaev, не, не так. Наличие пяти нулей или девяток в конце дробной части числа плюс любое число последнее и минимальные машинные ресурсы на проверку и коррекцию - вполне конкретные формальные требования.
shurshur, да, спасибо за подтягивание теории, я ни в коем случае не вступаю в спор с Вами по этим вопросам. Просто рано или поздно хочется положить в закрома какое-то рабочее решение для исправления битых конвертациями чисел. Это проблема всех машинных языков, помню еще в LUA нужно было решать когда писал биржевых ботов лет 15 назад, там котировки требовали строго определенной не побитой разрядности. И разрядность у многих фин. инструментов была разная.
Конечно, заведомо определяя разрядность каждой переменной как условие результата, можно её проверять и даже передавать при обмене второй переменной, как например раздает Яху финанс в своих JSON. И рамках моей задачи сейчас мне действительно пока оказалось достаточно round 5, даже без проверки индивидуальных разрядностей. Но это "пока". Даже в мире финансов есть разрядности поболее 5 знаков после запятой. А в области bigdata это вообще дает катастрофические суммарные итоговые погрешности, и это давно известная проблема.
Строковое представление я дал чтобы чья-н. среда разработки не округлила для вывода в интерфейсе. Не так уж это странно. ) Вот выше kamenyuga утверждал что "После запятой в питоне будет максимум 15 или 16 цифр", я, чтобы не начать торговаться с ним как на базаре, дал число с 17-ю, причем не импортированное, это родил питон в результатом арифм. операции.
Сейчас проверю ваше round(x, sys.float_info.dig)
Спасибо.
kamenyuga, ок, ну тогда давай попробуем решать задачу в рамках вопроса? По куче нолей или девяток в конце числа предполагаем что это жертва трудностей перевода и возвращаем ему предполагаемое правильное значение.
Напоминаю условие - мы имеем дело с данными любой разрядности в рамках float python.
shurshur, нет, не вариант. Я же сразу указал что "полезных" цифр после запятой может быть разное количество, и их все нужно сохранить.
А куча девяток и нулей поле них это отрыжка вычисления (хранения) в двоичной системе, нужно округлять обратно или отсекать.
Лишние цифры тоже не нужны