NormalizeDouble을 사용하여 MT4에서 숫자 반올림 - 페이지 13 1...67891011121314151617 새 코멘트 Lilita Bogachkova 2016.02.25 21:44 #121 Алексей Тарабанов : 악마는 속았다 ... 2.6, 물론. 여러분, 잘 시간입니다 Алексей Тарабанов 2016.02.25 21:47 #122 lilita bogachkova : 여러분, 잘 시간입니다 나는 가입한다 [삭제] 2016.02.25 21:58 #123 Dmitry Fedoseev : 5는 무엇입니까? 이러한 숫자를 정규화하면 9가 모두 0으로 바뀌므로 정규화한 다음 버리면 잘못된 결과가 나타납니다. DoubleToString (0.99999.5) Dmitry Fedoseev 2016.02.25 23:05 #124 Vasyl Nosal : DoubleToString(0.99999.5) 닥, 그리고 만약 숫자가 0.99999라면 2글자를 남겨야겠죠? 나머지는 버리십시오. 0.99를 받아야 합니다. 그래서 앞서 제안한 알고리즘에 따라 세 자리 숫자로 정규화하고 1.000을 얻고 하나를 버리고 1.00을 얻습니다. 그러나 0.99는 아닙니다. [삭제] 2016.02.25 23:56 #125 Dmitry Fedoseev : 닥, 그리고 만약 숫자가 0.99999라면 2글자를 남겨야겠죠? 나머지는 버리십시오. 0.99를 받아야 합니다. 그래서 앞서 제안한 알고리즘에 따라 세 자리 숫자로 정규화하고 1.000을 얻고 하나를 버리고 1.00을 얻습니다. 그러나 0.99는 아닙니다. extern ushort Characters_delete = 3 ; /////////////////////////////////////////// string data= DoubleToString ( 0.99999 , 5 ); string resoult= StringSubstr (data, 0 , StringLen (data)-Characters_delete); Dmitry Fedoseev 2016.02.26 00:00 #126 Vasyl Nosal : 아하... 그리고 0.99999 대신에 0.999999라는 숫자가 있었습니다. [삭제] 2016.02.26 00:02 #127 Dmitry Fedoseev : 예... 그리고 일단 0.99999 대신에 0.999999라는 숫자를 사용했습니다. string ( 0.999999 ) Dmitry Fedoseev 2016.02.26 00:03 #128 실종된 프로그래머에 대한 농담이 생각납니다. 그리고 그는 "비누, 헹굼, 반복"이라는 지시 사항이있는 샴푸의 손에 찬 목욕에 앉습니다. [삭제] 2016.02.26 05:11 #129 Dmitry Fedoseev : 실종된 프로그래머에 대한 농담이 생각납니다. 그리고 그는 "비누, 헹굼, 반복"이라는 지시가 있는 샴푸의 손에 찬 목욕에 앉습니다. 언어에 왜 그러한 정밀도가 필요한가요? 숫자(예: "0.7"이 실제로 "0.69999 ..."로 저장됨)가 필요합니까? 정말 어딘가에 쓰이나요? 나는 계산기에서처럼 숫자를 세는 데 익숙합니다. 정확히 거기에 표시됩니다. 예, 계산기 자체가 자체적으로 반올림하고 정확한 숫자 자체를 저장하지 않을 수 있습니다 ... 정확한 값 대신 무한 분수와 같은 근사치를 사용해야 하는 사람이 누구입니까? 분할, 0.7, 자르거나 반올림에 대해 걱정할 필요가 없습니다 :-) Lilita Bogachkova 2016.02.26 05:16 #130 Dmitry Fedoseev : 닥, 그리고 만약 숫자가 0.99999라면 2글자를 남겨야겠죠? 나머지는 버리십시오. 0.99를 받아야 합니다. 그래서 앞서 제안한 알고리즘에 따라 세 자리 숫자로 정규화하고 1.000을 얻고 하나를 버리고 1.00을 얻습니다. 그러나 0.99는 아닙니다. 결과를 얻으 십시오 0.99999999999999999 X = 0.99999999999999999 10*X = 10*0.99999999999999999 10*XX = 10*0.99999999999999999-0.99999999999999999 9*X = 9*0.99999999999999999 우리는 9*X = 9를 얻거나 X가 1(일)입니다 void OnStart () { double v1= 1.0 / 3.0 ; double v2= 3.0 *v1; Print ( "v1 = (1/3) = " , DoubleToString (v1), " | " , "v2 = 3*(1/3) = " , DoubleToString (v2)); } v1 = (1/3) = 0.33333333 | v2 = 3*(1/3) = 1.00000000 또는 0.99999999999999999 = 1.0 void OnStart () { double v1= 0.99999999999999999 ; if ( v1 >=1.0) Print ( "v1 (" , DoubleToString (v1), ") >= 1.0" ); } v1(1.00000000) >= 1.0 1...67891011121314151617 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
악마는 속았다 ... 2.6, 물론.
여러분, 잘 시간입니다
5는 무엇입니까? 이러한 숫자를 정규화하면 9가 모두 0으로 바뀌므로 정규화한 다음 버리면 잘못된 결과가 나타납니다.
DoubleToString(0.99999.5)
닥, 그리고 만약 숫자가 0.99999라면 2글자를 남겨야겠죠? 나머지는 버리십시오. 0.99를 받아야 합니다. 그래서 앞서 제안한 알고리즘에 따라 세 자리 숫자로 정규화하고 1.000을 얻고 하나를 버리고 1.00을 얻습니다. 그러나 0.99는 아닙니다.
닥, 그리고 만약 숫자가 0.99999라면 2글자를 남겨야겠죠? 나머지는 버리십시오. 0.99를 받아야 합니다. 그래서 앞서 제안한 알고리즘에 따라 세 자리 숫자로 정규화하고 1.000을 얻고 하나를 버리고 1.00을 얻습니다. 그러나 0.99는 아닙니다.
예... 그리고 일단 0.99999 대신에 0.999999라는 숫자를 사용했습니다.
실종된 프로그래머에 대한 농담이 생각납니다. 그리고 그는 "비누, 헹굼, 반복"이라는 지시가 있는 샴푸의 손에 찬 목욕에 앉습니다.
닥, 그리고 만약 숫자가 0.99999라면 2글자를 남겨야겠죠? 나머지는 버리십시오. 0.99를 받아야 합니다. 그래서 앞서 제안한 알고리즘에 따라 세 자리 숫자로 정규화하고 1.000을 얻고 하나를 버리고 1.00을 얻습니다. 그러나 0.99는 아닙니다.
결과를 얻으 십시오 0.99999999999999999
X = 0.99999999999999999
10*X = 10*0.99999999999999999
10*XX = 10*0.99999999999999999-0.99999999999999999
9*X = 9*0.99999999999999999
우리는 9*X = 9를 얻거나 X가 1(일)입니다
v1 = (1/3) = 0.33333333 | v2 = 3*(1/3) = 1.00000000
또는 0.99999999999999999 = 1.0
v1(1.00000000) >= 1.0