Vladislav Andruschenko : 고맙습니다. 내가 어디에서 실수했는지 알아 내려고 노력할 것입니다. 그 동안 float는 pah pah를 작동합니다. 시작한 일을 그만두는 데 익숙하지 않습니다. 하지만 이 실수가 나를 틀에서 벗어났다.
물론 이것은 마스터의 일이지만 모든 표준 수학 함수가 이중 숫자로 작동하고 이중 결과를 생성한다는 사실에주의하십시오. 이러한 함수를 부동 숫자에 적용할 때 어쨌든 내부적으로 double로 변환이 발생하므로 어떤 경우에도 얻은 결과의 정확성과 신뢰성을 잃게 됩니다.
개인적으로 나는 계산에 절대 사용하지 않으며 숫자를 비교할 때 차이를 최소 허용 값과 비교할 때 항상 16자리까지 가능한 가장 높은 정확도로 작업하고 맨 마지막 작업에서만 정규화를 수행합니다. double을 올바르게 처리하면 문제가 없습니다. 그렇게 하는 것이 좋습니다. 그렇지 않으면 일부 계산/변환 단계에서 정확도 손실 과 관련된 결과를 왜곡하는 미묘한 문제가 발생합니다.
Andrey Dik : 물론 이것은 마스터의 일이지만 모든 표준 수학 함수가 이중 숫자로 작동하고 이중 결과를 생성한다는 사실에주의하십시오. 이러한 함수를 부동 숫자에 적용할 때 어쨌든 내부적으로 double로 변환이 발생하므로 어떤 경우에도 얻은 결과의 정확성과 신뢰성을 잃게 됩니다.
개인적으로 나는 계산에 절대 사용하지 않으며 숫자를 비교할 때 차이를 최소 허용 값과 비교할 때 항상 16자리까지 가능한 가장 높은 정확도로 작업하고 맨 마지막 작업에서만 정규화를 수행합니다. double을 올바르게 처리하면 문제가 없습니다. 그렇게 하는 것이 좋습니다. 그렇지 않으면 일부 계산/변환 단계에서 정확도 손실 과 관련된 결과를 왜곡하는 미묘한 문제가 발생합니다.
float는 이점이 없는 숫자의 거세입니다. 변환의 모든 손실을 더 잘 처리하고 가능한 가장 높은 정밀도인 double을 사용합니다.
고맙습니다. 내가 어디에서 실수했는지 알아 내려고 노력할 것입니다. 그 동안 float는 pah pah를 작동합니다. 시작한 일을 그만두는 데 익숙하지 않습니다. 하지만 이 실수가 나를 틀에서 벗어났다.
개인적으로 나는 계산에 절대 사용하지 않으며 숫자를 비교할 때 차이를 최소 허용 값과 비교할 때 항상 16자리까지 가능한 가장 높은 정확도로 작업하고 맨 마지막 작업에서만 정규화를 수행합니다. double을 올바르게 처리하면 문제가 없습니다. 그렇게 하는 것이 좋습니다. 그렇지 않으면 일부 계산/변환 단계에서 정확도 손실 과 관련된 결과를 왜곡하는 미묘한 문제가 발생합니다.
물론 이것은 마스터의 일이지만 모든 표준 수학 함수가 이중 숫자로 작동하고 이중 결과를 생성한다는 사실에주의하십시오. 이러한 함수를 부동 숫자에 적용할 때 어쨌든 내부적으로 double로 변환이 발생하므로 어떤 경우에도 얻은 결과의 정확성과 신뢰성을 잃게 됩니다.
개인적으로 나는 계산에 절대 사용하지 않으며 숫자를 비교할 때 차이를 최소 허용 값과 비교할 때 항상 16자리까지 가능한 가장 높은 정확도로 작업하고 맨 마지막 작업에서만 정규화를 수행합니다. double을 올바르게 처리하면 문제가 없습니다. 그렇게 하는 것이 좋습니다. 그렇지 않으면 일부 계산/변환 단계에서 정확도 손실 과 관련된 결과를 왜곡하는 미묘한 문제가 발생합니다.
2017년 가격 평가는 무조건 사실입니다.
2017년 가격 평가는 무조건 사실입니다.
이것이 어떻게되어야하는지
double AUTOPRICE= MathFloor ( NormalizeDouble (Averab, 2 ) )* _Point ;
이것이 어떻게되어야하는지
double AUTOPRICE= MathFloor ( NormalizeDouble (Averab, 2 ) )* _Point ;
코드를 여러 번 변경했습니다.
나는 똑같이 했다. 실험을 통해 double과 int가 무엇인지 이해했지만 명시적 계산으로 필요한 것을 얻지 못했습니다.
첫 번째 줄은 당신이 제안한 것입니다
2017.02 . 26 18 : 24 : 59.133 2017.01 . 02 00 : 03 : 00 Exp - DOUBLE TEST MATHFLOOR EURUSD,M30: DOUBLE askP2= 105146 bidP2= 105141 Averab2= 105143.5000000000 AUTOPRICE= 1.0514300000
2017.02 . 26 18 : 24 : 59.133 2017.01 . 02 00 : 03 : 00 Exp - DOUBLE TEST MATHFLOOR EURUSD,M30: FLOAT askP= 105146 bidP= 105141 Averab= 105143.5000000000 AUTOPRICE= 1.0514299870
그래서 모든 것이 정확합니다 . 105143.5000000000 은 43으로 반올림되었습니다...
(46-41)/2=2.5 반내림 = 2
그래서 모든 것이 정확합니다 . 105143.5000000000 은 43으로 반올림되었습니다...
(46-41)/2=2.5 반내림 = 2
예,
그러나 다른 스프레드(2,3,4,5,6,7)에서는 반올림이 다르며 때로는 정확하지 않습니다. 문제는 이것입니다.