Возможно ли получить "точное" значение? - страница 6

 
abolk:

чтобы решить эту задачу -- надо чтобы 0.09*5 было =0.45, а не =0.449999999999999

а коль скоро, такого нет -- то задача изначально нерешаемая

0.09*5=0.45 )

считать разучился чтоль?))

 
sanyooooook:

0.09*5=0.45 )

считать разучился чтоль?))

Все верно, был преведен пример, что считает 0.44, вместо 0.45 из-за "своей" работы MQL. Я не знаю досконально язык, но это странно, почему большое число обрезается, в смысле, почему, когда число выходит за границы лимита, оно округлятся, а не обрезается. Было бы здорово, чтобы метод "точного обрезани строки", возможно тот, который я приводил выше, был в MQL для пользования. :)
 
WePlexus:
Все верно, был преведен пример, что считает 0.44, вместо 0.45 из-за "своей" работы MQL. Я не знаю досконально язык, но это странно, почему большое число обрезается, в смысле, почему, когда число выходит за границы лимита, оно округлятся, а не обрезается. Было бы здорово, чтобы метод "точного обрезани строки", возможно тот, который я приводил выше, был в MQL для пользования. :)
по тому что так принято в математике, если нужно убрать число знаков после запятой, то значение округляется.
 
sanyooooook:
по тому что так принято в математике, если нужно убрать число знаков после запятой, то значение округляется.
мУдро
 
Спасибо за помощь.
 
всегда
 
WePlexus:
Я не знаю досконально язык, но это странно, почему большое число обрезается, в смысле, почему, когда число выходит за границы лимита, оно округлятся, а не обрезается. Было бы здорово, чтобы метод "точного обрезани строки", возможно тот, который я приводил выше, был в MQL для пользования. :)
Я так и понял, чем "точное обрезание" может быть полезно. Ну кроме чувства удовлетворения и законной гордости от решённой задачи :).
 
С округлением проще
 
abolk:

вот максимальное число, с которым нормализация проходит:

ели взять на одну 9-ку больше, то уже нормализуется до 0.02

А вот моя функция справляется с этой задачей:

Normalize ("0.01999999999999999999999999999999", 6)

Выведет 0.019999. Далее можно привести число к нужному типу и выполнять с ним математические операции.

Если без кавычек передавать в функцию число, то в результате получим 0.02.

 
WePlexus:

способов решить вашу задачу -- несколько -- каждый из них имеет свои плюсы и минусы -- по точности результата и по скорости получения результата. 

работа с плавающими числами имеет свои особенности -- их надо понимать -- и уже под понимание этих особенностей + под свою задачу -- уже искать решение.

Причина обращения: