NormalizeDouble을 사용하여 MT4에서 숫자 반올림 - 페이지 8

 
Dmitry Fedoseev :

글쎄, 틀렸어.

빼서 소수점 이하 두 자리로 정규화한 다음 1로 정규화합니다.

그럼 시도해보세요 :)

 
Event :

그럼 시도해보세요 :)

무엇을 시도? 그래서 그것은 분명합니다. 빼기의 결과는 정규화되지 않습니다. 즉, 두 자리 숫자로 정규화하지 않으면 때때로 놀라움이 있을 수 있습니다.
 
Event :

그리고 무엇이 필요합니까?

문자열의 길이 를 알아야 합니까? - 가지를 혼동하지 않았습니까?

코드?

저처럼 2줄 이상이면 더 어렵습니다.

 
Vasyl Nosal :

코드?

저처럼 2줄 이상이면 더 어렵습니다.

당신은 게시물을 주의 깊게 읽지 않습니다.

나는 코드를 주었다 - 그것은 한 줄로 되어 있다.

 
Event :

당신은 게시물을 주의 깊게 읽지 않습니다.

나는 코드를 주었다 - 그것은 한 줄로 되어 있다.

시원한. 그래서 내 코드에서 1.15 normalize :))))))))))))))))))))))))))))))))))))))) )))) )))))))))))))
 
Vasyl Nosal :

++++

사실, 숫자가 소수점 이하 15자리보다 길면 어쨌든 어떻게든 잘라야 합니다. 그렇지 않으면 올바르게 작동하지 않습니다.

 //+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   ushort   Characters_delete= 15 ;
   for ( int i= 0 ;i<=Characters_delete;i++)
     {
       double v1= 1.123456789012345 ;

      v1=DoubleCrop(v1,i,Characters_delete);

       Print ( "v1 = " ,i, " = " , DoubleToString (v1,Characters_delete-i));
     }
   Print ( "---" );
  }
//+------------------------------------------------------------------+
//| Double Crop function                                             |
//+------------------------------------------------------------------+
double DoubleCrop( double value, int ii, ushort   Characters)
  {
   string data= "" ,resoult= "" ;
   data= DoubleToString (value,Characters);
   resoult= StringSubstr (data, 0 , StringLen (data)-ii);
   return StringToDouble (resoult);
  }
//+------------------------------------------------------------------+
 
Event :

그럼 시도해보세요 :)

0과 음수가 틀립니다. 긍정적으로, 놀랍게도, 놀라움은 없습니다.
 

Vasyl Nosal :

 extern ushort Characters_delete = 1 ;

///////////////////////////////////////////
string data= DoubleToString ( Bid , Digits );
string  resoult= StringSubstr (data, 0 , StringLen (data)-Characters_delete);  

헤. 이것은 잘못된 경로입니다. 완전히 잘못된 결과입니다.
 
Dmitry Fedoseev :
0과 음수가 틀립니다. 긍정적으로, 놀랍게도, 놀라움은 없습니다.

음수를 추가해야 합니다(반올림할 때 Normalize가 모듈러스에서 증가하는 경우).

그리고 0은 분명히 할 일이 없습니다.

견적에 적용하면 <= 0이 될 확률은 적습니다... :)

 
반올림에 대한 8페이지. 초등학교 4학년 때 했던 것 같습니다. :(