"정확한"값을 얻을 수 있습니까? - 페이지 3 1234567 새 코멘트 Alexandr Bryzgalov 2014.10.04 10:11 #21 abolk : 기능을 확인했습니다 -- 0.02를 남깁니다. 그리고 무엇이 나를 잘랐습니까? void OnStart () { //--- int DIGITS= 2 ; string stroka= DoubleToString ( 0.0199999999999 , 8 ); int P= StringFind (stroka, "." ); Print (stroka); stroka= StringSubstr (stroka, 0 ,P+DIGITS+ 1 ); Print ( StringToDouble (stroka)); Print (NL(DIGITS, 0.0199999999999 )); Print (Normalize ( 0.0199999999999 , 2 )); } //+------------------------------------------------------------------+ double NL ( int DIGITS, double value) { double step= 1 / MathPow ( 10 ,DIGITS); return ( MathFloor (value/step)*step); } 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 : "" )); } 2014.10 . 04 11 : 56 : 06.199 normalize EURUSD,H4: 0.01 2014.10 . 04 11 : 56 : 06.199 normalize EURUSD,H4: 0.01 2014.10 . 04 11 : 56 : 06.199 normalize EURUSD,H4: 0.02 2014.10 . 04 11 : 56 : 06.199 normalize EURUSD,H4: 0.02000000 Alexandr Bryzgalov 2014.10.04 10:12 #22 WePlexus : abolk 예제에서 0.01을 사용하도록 함수를 최적화하려면 어떻게 해야 합니까? 무슨 기능을 말하는거야? 라인 또는 NL을 통해 첫 번째? Andrey F. Zelinsky 2014.10.04 10:13 #23 sanyooooook : 그리고 무엇이 나를 잘랐습니까? 당신은 내 조건을 받아들이고 그것을 자르지 마십시오: 폐지 : 번호 = 0.0199999999999999999에서와 같이 -- 떠나기 = 0.01 Alexandr Bryzgalov 2014.10.04 10:17 #24 abolk : 당신은 내 조건을 받아들이고 그것을 자르지 마십시오: 그래서 doble은 8자입니다. 여기서 컴파일러 는 숫자 0.01999999999999999999를 0.02로 정규화합니다. 저것들. 0.02는 입력으로 간다 Alexandr Bryzgalov 2014.10.04 10:18 #25 int DIGITS= 2 ; Print ( 0.01999999999999999999 ); string stroka= DoubleToString ( 0.01999999999999999999 , 8 ); int P= StringFind (stroka, "." ); Print (stroka); stroka= StringSubstr (stroka, 0 ,P+DIGITS+ 1 ); Print ( StringToDouble (stroka)); Print (NL(DIGITS, 0.01999999999999999999 )); Print (Normalize ( 0.01999999999999999999 , 2 )); 준다 2014.10 . 04 12 : 17 : 13.637 normalize EURUSD,H4: 0.02 2014.10 . 04 12 : 17 : 13.637 normalize EURUSD,H4: 0.02 2014.10 . 04 12 : 17 : 13.637 normalize EURUSD,H4: 0.02 2014.10 . 04 12 : 17 : 13.637 normalize EURUSD,H4: 0.02000000 2014.10 . 04 12 : 17 : 13.637 normalize EURUSD,H4: 0.02 Alexandr Bryzgalov 2014.10.04 10:20 #26 ))), 미안 바보 doble에는 15개의 유효 숫자가 있고 더 많은 입력이 있습니다. Andrey F. Zelinsky 2014.10.04 10:29 #27 sanyooooook : ))), 미안 바보 doble에는 15개의 유효 숫자가 있고 더 많은 입력이 있습니다. 음, 마침내 - 문제에 대한 건설적인 토론이 끝났습니다. Andrey F. Zelinsky 2014.10.04 10:32 #28 sanyooooook : ))), 미안 바보 doble에는 15개의 유효 숫자가 있고 더 많은 입력이 있습니다. 내 솔루션은 다음과 같습니다. double d= 0.01999999999999999 ; double e=( int )(d* 100 )/ 100.0 ; Print ( "e=" ,e); 제공 = 0.01 9-ku를 추가하면: double d= 0.01999999999999999 9 ; double e=( int )(d* 100 )/ 100.0 ; Print ( "e=" ,e); 그러면 =0.02가 됩니다. Petros Shatakhtsyan 2014.10.04 10:33 #29 abolk : 음, 마침내 - 문제에 대한 건설적인 토론이 끝났습니다. 그리고 왜 필요합니까? 데이터 오버플로. TheXpert 2014.10.04 10:37 #30 abolk : 내 솔루션은 다음과 같습니다. d* 100 이 작업은 숫자 값을 왜곡할 수 있습니다. 1234567 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
기능을 확인했습니다 -- 0.02를 남깁니다.
그리고 무엇이 나를 잘랐습니까?
abolk 예제에서 0.01을 사용하도록 함수를 최적화하려면 어떻게 해야 합니까?
무슨 기능을 말하는거야?
라인 또는 NL을 통해 첫 번째?
그리고 무엇이 나를 잘랐습니까?
당신은 내 조건을 받아들이고 그것을 자르지 마십시오:
번호 = 0.0199999999999999999에서와 같이 -- 떠나기 = 0.01
당신은 내 조건을 받아들이고 그것을 자르지 마십시오:
그래서 doble은 8자입니다. 여기서 컴파일러 는 숫자 0.01999999999999999999를 0.02로 정규화합니다.
저것들. 0.02는 입력으로 간다
준다
))), 미안 바보
doble에는 15개의 유효 숫자가 있고 더 많은 입력이 있습니다.
))), 미안 바보
doble에는 15개의 유효 숫자가 있고 더 많은 입력이 있습니다.
))), 미안 바보
doble에는 15개의 유효 숫자가 있고 더 많은 입력이 있습니다.
내 솔루션은 다음과 같습니다.
제공 = 0.01
9-ku를 추가하면:
그러면 =0.02가 됩니다.음, 마침내 - 문제에 대한 건설적인 토론이 끝났습니다.
내 솔루션은 다음과 같습니다.
d* 100이 작업은 숫자 값을 왜곡할 수 있습니다.