정규화이중 역설 - 페이지 11

 
transcendreamer :

그러나 일반적으로 나는 분수를 계산하고 정규화하고 변수에 쓴 다음 읽고 다시 정규화하면 꼬리가 나온다는 사실에 짜증이납니다.

예를 들어

basis[0]=NormalizeDouble(sum_A,2);

GlobalVariableSet("Equity-"+portfolio_id,basis[0]); 

...

current=NormalizeDouble(GlobalVariableGet("Equity-"+portfolio_id),2);

text = "Positions synchronized at " + current + " for portfolio: " + portfolio_name;

if(!automatic) MessageBox(text,""); else Print(text);

지금으로 변경

text = "Positions synchronized at " + DoubleToStr(current,2) + " for portfolio: " + portfolio_name;

if(!automatic) MessageBox(text,""); else Print(text);

그리고 꼬리가 안 나오는 것 같다 pah pah

나는 이미 썼습니다. 반복합니다. 일부 숫자는 이진 시스템에 존재하지 않습니다. 거기에는 0.1도 없고 0.3도 없고 다른 많은 것도 없습니다. double val = NormalizeDouble (0.1434, 1)을 아무리 많이 작성하더라도 단순히 그러한 숫자가 없기 때문에 0.1을 얻지 못할 것입니다.

예를 들어 숫자는 다음과 같이 표시됩니다.

0.1 = 0.10000000000000001
0.2 = 0.20000000000000001
0.3 = 0.29999999999999999
0.4 = 0.40000000000000002
0.6 = 0.59999999999999998

하지만
0.125 = 0.125
0.25 = 0.25
0.5 = 0.5

이것이 매우 걱정스럽다면 fpu를 사용하지 않을 분수(일부 라이브러리가 있을 수 있지만 관심이 없었음)를 나타내기 위해 자전거를 반올림하거나 작성해야 합니다.

그리고 문자열로 변환하는 동안 꼬리가 추가되지 않으며 처음에는 꼬리가 있습니다.

 
transcendreamer :

그래서 난 내 문제를 해결, 당신은 주제를 닫을 수 있습니다

솔루션: 정규화 후에도 이중 반올림을 강제해야 함

잘못된 결정입니다. 반올림 할 때 곱하기, 반올림, 나누기가 필요합니다. 마지막 나눗셈 후에 숫자는 비정규화됩니다.
 
transcendreamer :

그것은 가능합니다 ... 그러나 최종 결과의 관점에서 볼 때 꼬리가 있습니다!

...

정규화 후 꼬리가 없습니다.
 
Integer :
정규화 후 꼬리가 없습니다.

나는 당신이 사람들을 오해하고 있다고 생각합니다. 정규화 후 꼬리가 없다는 것은 무엇을 의미합니까? 꼬리는 우리가 숫자에서 받고 값을 반올림한 문자열에만 있지 않을 수 있습니다(이미 문자열에서 반올림되고 이중이 아님). 그리고 NormalizeDouble() 뒤에 꼬리가 있습니다.

 
Integer :
잘못된 결정입니다. 반올림 할 때 곱하기, 반올림, 나누기가 필요합니다. 마지막 나눗셈 후에 숫자는 비정규화됩니다.

정규화로 무엇을 이해합니까? 여기서 stringo는 알고리즘이 다음과 같다고 말했습니다.

 double NormalizeDouble ( double val, int digits)
{
    val *= 10 ^ digits
    округляем к ближайшему целому
    val /= 10 ^ digits
     return val
}
 
pavlick_ :

나는 당신이 사람들을 오해하고 있다고 생각합니다. 정규화 후 꼬리가 없다는 것은 무엇을 의미합니까? 꼬리는 우리가 숫자에서 수신하고 값을 반올림한 문자열에만 있지 않을 수 있습니다(이미 문자열에서 반올림되고 이중이 아님). 그리고 NormalizeDouble() 뒤에 꼬리가 있습니다.

글쎄, 내가 누군가를 오도하고 있다고 믿고 싶다면 나를 믿으십시오. 나는 이미 모든 종류의 것을 보았지만 당신의 "원칙적인" 입장에 놀라지 마십시오.
 
pavlick_ :

정규화로 무엇을 이해합니까? 여기서 stringo는 알고리즘이 다음과 같다고 말했습니다.

표준화가 의미하는 바가 훨씬 더 흥미로울 것입니다.
 
Integer :
나는 당신에게 구체적인 질문을하고 당신은 물을 붓습니다. 당신의 관점을 설명하고 논쟁하는 것이 정상적이라면 어떻겠습니까?
 
pavlick_ :
나는 당신에게 구체적인 질문을하고 당신은 물을 붓습니다. 당신의 관점을 설명하고 논쟁하는 것이 정상적이라면 어떻겠습니까?
교과서와 문서를 소리 내어 읽거나 무엇을 합니까? 아니면 "about"이라는 단어에 대한 사전을 소리 내어 읽어 볼까요?
 
Integer :
교과서와 문서를 소리 내어 읽거나 무엇을 합니까? 아니면 "about"이라는 단어에 대한 사전을 소리 내어 읽어 볼까요?
모든 것이 명확하고 우리에게 아무 것도 알려주지 않습니다. 그리고 당신이 말에 책임이 없다면 대화에 개입하지 않는 것이 좋습니다.