"정확한"값을 얻을 수 있습니까? - 페이지 2 1234567 새 코멘트 Alexandr Bryzgalov 2014.10.04 07:34 #11 그리고 여기에 의미가 있습니다 0.099999999 0.1을 반환합니다 ) Alexandr Bryzgalov 2014.10.04 07:44 #12 그러면 위에 주어진 것이 TS의 작업에 더 정확할 것입니다. void OnStart () { //--- int DIGITS= 2 ; string stroka= DoubleToString ( 0.099999999 , 8 ); int P= StringFind (stroka, "." ); Print (stroka); stroka= StringSubstr (stroka, 0 ,P+DIGITS+ 1 ); Print ( StringToDouble (stroka)); Print (NL(DIGITS, 0.099999999 )); } //+------------------------------------------------------------------+ double NL ( int DIGITS, double value) { double step= 1 / MathPow ( 10 ,DIGITS); return ( MathFloor (value/step)*step); } 보고: 2014.10 . 04 11 : 42 : 31.856 normalize EURUSD,H4: 0.09 2014.10 . 04 11 : 42 : 31.856 normalize EURUSD,H4: 0.1 2014.10 . 04 11 : 42 : 31.856 normalize EURUSD,H4: 0.10000000 [삭제] 2014.10.04 07:48 #13 정확히 필요한 작업을 수행하는 함수를 스케치했습니다. DoubleToStr과 달리 문자열 을 지정된 정밀도로 정확하게 자릅니다. string Normalize ( string Normalize_Parse, int Normalize_Number, string Normalize_Separator = "." ) { string Normalize_Before, Normalize_After; for ( int i = 0 ; i <= StringLen (Normalize_Parse) - 1 ; i ++) { if ( StringSubstr (Normalize_Parse, i, StringLen (Normalize_Separator)) == Normalize_Separator) { for ( int ii = i + StringLen (Normalize_Separator); ii < i + StringLen (Normalize_Separator) + Normalize_Number; ii ++) { Normalize_After += StringSubstr (Normalize_Parse, ii, 1 ); } break ; } Normalize_Before += StringSubstr (Normalize_Parse, i, 1 ); } return (Normalize_Before + (Normalize_After > 0 ? Normalize_Separator + Normalize_After : "" )); } "0.09864724"에 대한 결과: Comment (Normalize ( 0.09864724 , 2 )); // 0.09 "0,-843158"에 대한 결과: Comment (Normalize ( "0,-843158" , 3 , ",-" )); // 0,-843 이중 및 유사 작업: Comment (( double ) Normalize ( 0.09 , 2 ) * 5 ); // 0.45 방금 검색했는데 MQL4(5?)에 이미 그런 기능이 있습니다. 거기에 없다면 왜 오래전에 추가하지 않았습니까? :) Alexandr Bryzgalov 2014.10.04 07:53 #14 WePlexus : 정확히 필요한 작업을 수행하는 함수를 스케치했습니다. DoubleToStr과 달리 문자열 을 지정된 정밀도로 정확하게 자릅니다. "0.09864724"에 대한 결과: "0,-843158"에 대한 결과: 이중 및 유사 작업: 방금 검색했는데 MQL4(5?)에 이미 그런 기능이 있습니다. 거기에 없다면 왜 오래전에 추가하지 않았습니까? :) 그것이 내가 이해하는 것입니다. "쉽게") Andrey F. Zelinsky 2014.10.04 07:55 #15 WePlexus : 정확히 필요한 작업을 수행하는 함수를 스케치했습니다. DoubleToStr과 달리 문자열 을 지정된 정밀도로 정확하게 자릅니다. "0.09864724"에 대한 결과: "0,-843158"에 대한 결과: 이중 및 유사 작업: 방금 검색했는데 MQL4(5?)에 이미 그런 기능이 있습니다. 거기에 없다면 왜 오래전에 추가하지 않았습니까? :) 일반적이지 않은 예제를 사용하고 있으므로 함수가 올바르게 작동하고 있다는 결론을 내릴 수 없습니다. 이 예를 들면: 번호 = 0.0199999999999999999에서와 같이 -- 떠나기 = 0.01 Alexandr Bryzgalov 2014.10.04 07:56 #16 abolk : 일반적이지 않은 예제를 사용하고 있으므로 함수가 올바르게 작동하고 있다는 결론을 내릴 수 없습니다. 이 예를 들면: 번호 = 0.0199999999999999999에서와 같이 -- 떠나기 = 0.01 마지막 기능을 확인하고 0.01을 남깁니다. Petros Shatakhtsyan 2014.10.04 08:00 #17 나는 아직도 당신이 원하는 것을 이해하지 못합니다. 차트에서 0.098 대신 0.09를 보고 싶다면 그렇게 하세요! 정수 a = 0.098 * 100; 이중 d=a/100.0; 주석( StringFormat ( "%G", d )); Andrey F. Zelinsky 2014.10.04 08:03 #18 sanyooooook : 마지막 기능을 확인하고 0.01을 남깁니다. 기능을 확인했습니다 -- 0.02를 남깁니다. [삭제] 2014.10.04 08:08 #19 abolk : 기능을 확인했습니다 -- 0.02를 남깁니다. 실제로 0.02. 내 기능은 더 복잡할 수 있지만 정확히 0.01을 자릅니다. [삭제] 2014.10.04 08:08 #20 sanyooooook : 마지막 기능을 확인하고 0.01을 남깁니다. abolk 예제에서 0.01을 사용하도록 함수를 최적화하려면 어떻게 해야 합니까? 1234567 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그리고 여기에 의미가 있습니다
0.099999999
0.1을 반환합니다
)
그러면 위에 주어진 것이 TS의 작업에 더 정확할 것입니다.
보고:
정확히 필요한 작업을 수행하는 함수를 스케치했습니다. DoubleToStr과 달리 문자열 을 지정된 정밀도로 정확하게 자릅니다.
"0.09864724"에 대한 결과:
"0,-843158"에 대한 결과:
이중 및 유사 작업:
방금 검색했는데 MQL4(5?)에 이미 그런 기능이 있습니다. 거기에 없다면 왜 오래전에 추가하지 않았습니까? :)
정확히 필요한 작업을 수행하는 함수를 스케치했습니다. DoubleToStr과 달리 문자열 을 지정된 정밀도로 정확하게 자릅니다.
"0.09864724"에 대한 결과:
"0,-843158"에 대한 결과:
이중 및 유사 작업:
방금 검색했는데 MQL4(5?)에 이미 그런 기능이 있습니다. 거기에 없다면 왜 오래전에 추가하지 않았습니까? :)
정확히 필요한 작업을 수행하는 함수를 스케치했습니다. DoubleToStr과 달리 문자열 을 지정된 정밀도로 정확하게 자릅니다.
"0.09864724"에 대한 결과:
"0,-843158"에 대한 결과:
이중 및 유사 작업:
방금 검색했는데 MQL4(5?)에 이미 그런 기능이 있습니다. 거기에 없다면 왜 오래전에 추가하지 않았습니까? :)
이 예를 들면:
번호 = 0.0199999999999999999에서와 같이 -- 떠나기 = 0.01
일반적이지 않은 예제를 사용하고 있으므로 함수가 올바르게 작동하고 있다는 결론을 내릴 수 없습니다.
이 예를 들면:
번호 = 0.0199999999999999999에서와 같이 -- 떠나기 = 0.01
나는 아직도 당신이 원하는 것을 이해하지 못합니다.
차트에서 0.098 대신 0.09를 보고 싶다면 그렇게 하세요!
정수 a = 0.098 * 100;
이중 d=a/100.0;
주석( StringFormat ( "%G", d ));
마지막 기능을 확인하고 0.01을 남깁니다.
기능을 확인했습니다 -- 0.02를 남깁니다.
실제로 0.02.
내 기능은 더 복잡할 수 있지만 정확히 0.01을 자릅니다.
마지막 기능을 확인하고 0.01을 남깁니다.