다음은 비교할 수 있지만 내부적으로 A 및/또는 B를 정규화할 수 있고 비교 차이(AB 또는 BA)를 "숫자"를 기반으로 더 큰 숫자로 완화할 수 있는 또 다른 가능한 루틴입니다. 위의 간단한 "AvsB"와 비교하여 이 루틴이 필요한지 의심되지만 원하는 대로 사용할 수 있도록 제공됩니다.
tonny : *두 손가락으로 넥타이를 제자리로 흔듭니다* double이 있는 모든 곳이 아니라 double 값을 포함하는 계산에서만 normalize double을 사용하십시오.
또는 NormalizeDouble() 을 전혀 사용하지 마십시오. 사용할 때 대부분 사용할 필요가 없습니다. . . 오류 4107은 NormalizeDouble()을 사용하여 해결할 수 있지만 다른 방법이 있습니다. 사전 정의된 변수 또는 시계열 함수 에서 오는 모든 가격은 정규화될 필요가 없으며 정수에 Point를 곱한 결과도 마찬가지입니다.
비교를 위한 것이라면 쉽게 고유한 함수를 만들 수 있습니다.
그냥 생각입니다.
비교를 위한 것이라면 쉽게 고유한 함수를 만들 수 있습니다.
그냥 생각입니다.
좋은 생각이네요 감사합니다 :-)
"Point" 또는 "Point/2.0"의 사용은 그다지 좋은 차이 값이 아닙니다, IMO. NormalizeDouble에 의해 도입된 반올림 오류(오늘까지 불타버렸습니다)는 확실히 8자리, 15자리보다 훨씬 작습니다.
이전 팁을 감안하고 아직 엄격하게 테스트되지는 않았지만 일부 변경을 수행하고 잘 작동하는 것처럼 보이는 다음 루틴을 구성했습니다("diff"를 소수점 이하 15자리까지 사용하는 경우에도).
다음은 비교할 수 있지만 내부적으로 A 및/또는 B를 정규화할 수 있고 비교 차이(AB 또는 BA)를 "숫자"를 기반으로 더 큰 숫자로 완화할 수 있는 또 다른 가능한 루틴입니다. 위의 간단한 "AvsB"와 비교하여 이 루틴이 필요한지 의심되지만 원하는 대로 사용할 수 있도록 제공됩니다.
"Point" 또는 "Point/2.0"의 사용은 그다지 좋은 차이 값이 아닙니다, IMO. NormalizeDouble에 의해 도입된 반올림 오류(오늘까지 불타버렸습니다)는 확실히 8자리, 15자리보다 훨씬 작습니다.
반올림 오차로 간주할 수 없는 가장 큰 값, 또는 동등하게 가격 변동 으로 간주할 수 없는 가장 작은 값을 원합니다. 가격은 포인트의 배수로만 변경될 수 있으므로 포인트/2가 바로 그것입니다.
중개인의 두 배 값은 1.23457500000000000에서 1.2345849999999999 사이일 수 있으며 여전히 동일한 1.23458 가격으로 간주됩니다.
이것을 사용했다면 문제가 없었을 것입니다.
if (a > b)
if (a >= b)
if (a != b)
normalisedouble 사용을 피해야 합니까 ??
아니면.. MathRound 함수 를 사용할 수 있다고 생각합니다.
전 . 더블 x= ( MathRound ( 1.37883 * 100000)) / 100000 ;
그래서 우리는 기능을 만들 수 있습니다
*두 손가락으로 넥타이를 제자리로 흔듭니다* double이 있는 모든 곳이 아니라 double 값을 포함하는 계산에서만 normalize double을 사용하십시오.
normalisedouble 사용을 피해야 합니까 ??
아니면.. MathRound 함수를 사용할 수 있다고 생각합니다.
전 . 더블 x= ( MathRound ( 1.37883 * 100000)) / 100000 ;
당신은 여전히 두 배와 가격의 가능성으로 끝납니다!= 가격
double 을 비교하기 위해 double 을 int 로 바꾸는 이 솔루션에 도달했습니다. . .
하도록 하다 . . .
절대 사실이 아닙니다.