vladislav
Я понимаю это, но наверняка какие-то решения здесь придуманы
vladislav
Я же не сам округляю, а std::round
vladislav
в смысле?
vladislav
Не понимаю, зачем мне его печатать? Мне это значение нужно для следующих вычислений.
vladislav
Мне нужно именно округлённое значение
vladislav
до целого
🐙 Antony
Мне нужно именно округлённое значение
А как выглядит задача целиком? Что надо делать с дальнейшим числом? Дайте больше контекста. Возможно что нужно использовать decimal, либо совершенно по другому подходить к вычислениям
vladislav
Ок, сейчас опишу контекст
ep
до целого
> 10.0, процент = 65%, берём 65% от 10, ожидаем получить 6.5, но на практике получаем 6.4999999, из-за чего округление Что ты считаешь "целым"?
ep
Существует стандарт IEEE 754, там есть 5 методов округления. https://en.wikipedia.org/wiki/IEEE_754#Rounding_rules
Александр
vladislav
А как выглядит задача целиком? Что надо делать с дальнейшим числом? Дайте больше контекста. Возможно что нужно использовать decimal, либо совершенно по другому подходить к вычислениям
Контекст такой: мне приходить две цены double price1, double price2 вычисляю дифф между ценами следующим образом double diff = std::fabs(normalize_double(price1, 5) - normalize_double(price2, 5)) * std::pow(10,5); этот дифф множится на процент diff = std::round(diff * 0.65); добавляется в конечную цену. result price += diff / std::pow(10, 5);
Александр
» std::pow(10, 5); ужас
vladislav
почему?
Александр
int(value + 0.5)
Александр
почему?
это же константа, причём нормальная, а не 197491238
vladislav
это же константа, причём нормальная, а не 197491238
это в приведёном куске константа, а не в коде
vladislav
я не стал вводить в пример ненужные сущности
Александр
это в приведёном куске константа, а не в коде
если в коде переменные, то ладно
ep
Могу предложить способ округления до n-знаков после запятой, который используется в Python. https://github.com/python/cpython/blob/master/Objects/floatobject.c#L987 Либо используй decimal-like решения, если тебе действительно нужно контролировать точность дробной части.
🐙 Antony
Контекст такой: мне приходить две цены double price1, double price2 вычисляю дифф между ценами следующим образом double diff = std::fabs(normalize_double(price1, 5) - normalize_double(price2, 5)) * std::pow(10,5); этот дифф множится на процент diff = std::round(diff * 0.65); добавляется в конечную цену. result price += diff / std::pow(10, 5);
Округляйте только на последнем этапе, уменьшите количество операций с double: double diff = std::fabs(price1 - price2); diff = diff * 0.65; price += diff; return std::round(price); А правильным решением будет использовать decimal
vladislav
» А правильным решением будет использовать decimal ну там всё приложение на даблах :)
vladislav
это торги на форексе
🐙 Antony
это торги на форексе
> ну там всё приложение на даблах :)
🐙 Antony
vladislav
мой кусок кода вычисляет цены открытия и закрытия для ордеров
vladislav
> ну там всё приложение на даблах :)
ну, вопросы к metaquotes, они такую апи к своему серверу предоставляют
ep
В финансовых приложениях как раз используется decimal. Это как раз, чтобы контролировать точность до копейки.
vladislav
сервер их в даблах хранит, лол
vladislav
ну в смысле, мне приходят данные напрямую с сервера.
vladislav
тебе код апишки скинуть?) это NDA :)
🐙 Antony
Я всё чаще убеждаюсь, что самое безобразное ПО в банках и комерческих системах, работающих с деньгами
ep
тебе код апишки скинуть?) это NDA :)
Чтоа? У метатрейдер открытый API
vladislav
ну вот как пример, структура, хранящая тики из их апи struct TickAPI { time_t ctm; // time double bid,ask; // normalized bid & ask };
vladislav
Чтоа? У метатрейдер открытый API
он же с платформой предоставляется
vladislav
к докам тоже доступ закрытый
ep
к докам тоже доступ закрытый
Я не понимаю. Я когда-то что-то делал на языке в метатрейдер (MQL вроде), всё было открыто, куча примеров и т.п. Что за закрытая платформа?
vladislav
metatrader 4. Mql открыт, это для разработки советников различных. Я занимаюсь разработкой плагинов под их платформу, доки закрыты у них.
ep
metatrader 4. Mql открыт, это для разработки советников различных. Я занимаюсь разработкой плагинов под их платформу, доки закрыты у них.
Понятно. Тогда спроси их разработчиков (если они тебе доступ к api открыли), как контролировать точность в рамках их платформы. В качестве оффтопа, личное мнение: форекс - фу. Не порть карму :)
vladislav
мне теперь в оупенсорс круглосуточно нужно коммитить, чтоб карму отмыть :)
Anonymous
С++ самый крутой язык программирования
Ioann_
А чего случилось то :?
Или это не тот Бэйби Ту Найт :?
vladislav
А чего случилось то :?
Не понял вопроса
Ioann_
Ну тут в чате есть еще один, с рысью на автарке.
vladislav
это я
Ioann_
Тогда ясно ;)
vladislav
это не рысь была, а каракал
Andrei
Хранить цену в double? Мощно.
vladislav
это очень больно, согласен
Danylo
я думал, их вообще безопаснее в интах хранить
Andrei
Безопаснее их хранить в спец. типах, чтобы тебе еще компилятор проверку типов энфорсил.
Александр
и переполнения разные
Evgenii
и переполнения разные
если у меня будет переполнение типа в котором я записываю деньги, то можно будет забить на разработку)
Burado
а так должно быть, что лямбды запускается раньше, чем они вызываются?
Александр
нет
Burado
пример: auto func = [some_var] () { some code }; func();
Burado
не дойдя до func выполнится.
vladislav
эм, а пример рабочий можно?
Burado
тут очень большой код.
Burado
мне нужно весь код было поместить в одну функцию.
Burado
и я все методы поместил по лямбдам.
vladislav
ну напиши минимально рабочий пример
vladislav
где твой кейс воспроизводится
Burado
rebuild помог
Burado
странный этот кьют.
Deleted Account
Deleted Account
rebuild помог
не используеш ide = не тратиш кучу времени на решение неведомых проблем которые создаёт ide
Evgenii
не используеш ide = не тратиш кучу времени на решение неведомых проблем которые создаёт ide
тратишь кучу времени на решение известных проблем которые решает ide
Mikhail
Всем привет! Обход map будет последовательным или нет? Т.е. по мере возростания ключа int? - https://pastebin.com/wAY1SDfS
vladislav
будет, слева направо, если не ошибаюсь
Mikhail
ага, спасибо!
Matwey
Да
Paul
Всем доброго вечера. Кто с Киева или пост в курсе - есть у нас какие-то курсы, которые ориентированы на трудоустройство или, быть может, компании, которые берут джунов хоть в "подсобники"?