Dmitry Fedoseev: Чего 5? При нормализации такого числа все 9-ки превращаются в нули, поэтому нормализовать, а потом отбросить будет давать неправильные результаты.
Дык, а если число 0.99999, а оставить надо два знака? Отбросить остальное. Нужно получить 0.99. Значит по предложенному ранее алгоритму нормализуем до трех знаков, получаем 1.000, отбрасываем один и получаем 1.00, но не 0.99.
Дык, а если число 0.99999, а оставить надо два знака? Отбросить остальное. Нужно получить 0.99. Значит по предложенному ранее алгоритму нормализуем до трех знаков, получаем 1.000, отбрасываем один и получаем 1.00, но не 0.99.
Dmitry Fedoseev: Напомнило анекдот про пропавшего программиста. А он сидит в холодной ванне, в руках шампунь с инструкцией "намылить смыть, повторить".
Зачем в языке нужна такая точность: что число (например) "0.7" реально хранится как "0.69999..."?
Это реально где-то используется? Я привык считать цифры как в калькуляторе, там точно показывается.
Да, возможно, калькулятор и сам что-то свое округляет, и сам не хранит точные цифры...
Кому вообще нужно использовать такие приблеженные цифры ссбесконечной дробью вместо точных значений?
Поделили, получили 0.7, и не парится с обрезанием или округлением :-)
Дык, а если число 0.99999, а оставить надо два знака? Отбросить остальное. Нужно получить 0.99. Значит по предложенному ранее алгоритму нормализуем до трех знаков, получаем 1.000, отбрасываем один и получаем 1.00, но не 0.99.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Бес попутал... 2.6, конечно.
все, спать пора
Чего 5? При нормализации такого числа все 9-ки превращаются в нули, поэтому нормализовать, а потом отбросить будет давать неправильные результаты.
DoubleToString(0.99999,5)
Дык, а если число 0.99999, а оставить надо два знака? Отбросить остальное. Нужно получить 0.99. Значит по предложенному ранее алгоритму нормализуем до трех знаков, получаем 1.000, отбрасываем один и получаем 1.00, но не 0.99.
Дык, а если число 0.99999, а оставить надо два знака? Отбросить остальное. Нужно получить 0.99. Значит по предложенному ранее алгоритму нормализуем до трех знаков, получаем 1.000, отбрасываем один и получаем 1.00, но не 0.99.
Ага... а у нас раз и вдруг вместо 0.99999 оказалось число 0.999999.
Напомнило анекдот про пропавшего программиста. А он сидит в холодной ванне, в руках шампунь с инструкцией "намылить смыть, повторить".
Дык, а если число 0.99999, а оставить надо два знака? Отбросить остальное. Нужно получить 0.99. Значит по предложенному ранее алгоритму нормализуем до трех знаков, получаем 1.000, отбрасываем один и получаем 1.00, но не 0.99.
попробуйте получить результат 0.99999999999999999
X = 0.99999999999999999
10*X = 10*0.99999999999999999
10*X-X = 10*0.99999999999999999-0.99999999999999999
9*X = 9*0.99999999999999999
получим 9*X = 9 или X равен 1 (один)
v1 = (1/3) = 0.33333333 | v2 = 3*(1/3) = 1.00000000
или 0.99999999999999999 = 1.0
v1 (1.00000000) >= 1.0