var imax = (int)(marketSellPrice / minStep);
var imin = (int)(marketBuyPrice / minStep);
if (minStep * imin < marketBuyPrice)
++imin;
return MakePriceRange_V3(imin, imax, minStep);
Математика на decimal медленная, при работе с ценами всегда стараюсь оперировать целыми числами шагов.
Поэтому дал три варианта заполнения списка, попробуй, какой будет быстрее.
Ну и шаг на входе один — официальный или произвольный, разницы практически никакой, чтобы городить лишний код.
Здравствуйте, Teolog, Вы писали:
T> T>Цикл не нужен, просто надо включить мозг и вспомнить что округлять можно не только до целого, а остаток можно сохранять
Здравствуйте, xma, Вы писали:
xma>редкостное говнокодище конечно ..
+1. Вначале тему по другому назвал, но меня тогда забанили бы.
xma>const decimal size = marketBuyPrice — mediumPrice2;
Ругается на const.
xma>(вроде верно)
Часто не совпадает.
xma>в твоём же коде вообще, если overwriteMinStep.Value <= 0, то твой код уйдёт в бесконечный цикл (если в первый раз сработает условие while) ..
Там не может быть отрицательное значение. Ну, теоретически.
Здравствуйте, Real 3L0, Вы писали:
xma>>const decimal size = marketBuyPrice — mediumPrice2; R3>Ругается на const.
тебе шашечки или ехать ? просил накатать общую идею исправленного алгоритма — я тебе дал, если ругается на const — значит убери его .. (я же не профи в синтаксисе всех возможных языках программирования)
xma>>(вроде верно) R3>Часто не совпадает.
ну главное то — идея
залей на dotnetfiddle.net — твой оригинал, и мой код .. посмотрим где не совпадает, и тогда понятно станет — как исправить .. (да, будь я сварщиком — меня бы давно уже убило) ..
xma>>в твоём же коде вообще, если overwriteMinStep.Value <= 0, то твой код уйдёт в бесконечный цикл (если в первый раз сработает условие while) .. R3>Там не может быть отрицательное значение. Ну, теоретически.
где написано, на заборе ? ну и золотое правило — если не хочешь проблем, то обрабатывай все случаи (напр., на время отладки — можно бросать exception'ы, в случае неправильных данных .. ну или если уверен в поставляемых в метод данных, то заглушка — как у меня, всё равно не помешает)
R3>Там не может быть отрицательное значение. Ну, теоретически.
там подходит только (строго) overwriteMinStep > 0, если даже ноль — то твой оригинальный код при marketBuyPrice > 0, уйдёт в бесконечный цикл ..
Здравствуйте, xma, Вы писали:
xma>тебе шашечки или ехать ? просил накатать общую идею исправленного алгоритма — я тебе дал,
Согласен. Просто возможности нет глубоко погрузиться в течение дня, поэтому быстро проверил и отписался. Тут уже много идей накидали.
xma> если ругается на const — значит убери его .. (я же не профи в синтаксисе всех возможных языках программирования)
Убрал, конечно.
xma>залей на dotnetfiddle.net — твой оригинал, и мой код .. посмотрим где не совпадает, и тогда понятно станет — как исправить .. (да, будь я сварщиком — меня бы давно уже убило) ..
Я так понял, уже не надо? В следующих версиях всё работает?
xma>где написано, на заборе ? ну и золотое правило — если не хочешь проблем, то обрабатывай все случаи (напр., на время отладки — можно бросать exception'ы, в случае неправильных данных .. ну или если уверен в поставляемых в метод данных, то заглушка — как у меня, всё равно не помешает) xma>там подходит только (строго) overwriteMinStep > 0, если даже ноль — то твой оригинальный код при marketBuyPrice > 0, уйдёт в бесконечный цикл ..
без компиляции и запуска реальных примеров — такое конечно "на бумажке" написать без шансов хз, конечно — может и есть "гении" у которых в башке квантовый компьютер и компилятор (одновременно), которые могут что угодно пред просчитать и предвидеть .. но в такое слабо верится конечно ..
а после запуска — всё становится очевидным .. (но вообще конечно, в идеале — надо вваливать рандомом по ограниченным диапазонам), с потенциальным выводом (в консоль) только там где если "есть несовпадения" ..