Округление

 

Вот такая проблема:

Есть цена Bid, ее формат х.ххххх (т.е. 5 знаков после точки).

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

Если (Bid > 1.11110 и Bid < 1.11119) то MyBid = 1.1111

NormalizeDouble(Bid,4) здесь не подойдет, он мне с 1.11118 сделает 1.1112, а мне надо 1.1111

Каким способом мне завкруглить луче, и чтоб по быстрее работало?

 

вероятно лучше сначала сюда https://docs.mql4.com/ru/convert/DoubleToStr

а потом - обратно https://docs.mql4.com/ru/convert/StrToDouble

 
NormalizeDouble(MathFloor(MathPow(10,Digits-1)*Value)/MathPow(10,Digits-1),Digits-1);
 

Можно использовать . Сначала умножаете на 1000, потом отбрасываете дробную часть, потом делите на 1000.

double ValueFloor=MathFloor(1000*Value)/1000;

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