오류, 버그, 질문 - 페이지 2623

 
Vladimir Pastushak :

아주 재미있는 수학

결과

2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.06000000 0.01 6.00 다음 로트 = 0.069999999999999999 0.06000000 + 0.01이 0.06999999999999999가 되는 방법

이 질문은 항상 나옵니다.
누구나 IEEE 754 표준에 대해 끊임없이 이야기하지만 사람들이 Wikipedia에 가면 복잡성이나 게으름 때문에 이 표준의 의미를 이해하지 못한 채 떠나는 경우가 많습니다.

이 포스트를 나중에 참고할 수 있도록 이 표준을 가능한 한 짧고 간단한 용어로 설명하는 시간을 갖도록 하겠습니다.


그래서 더블 타입 8바이트 = 64비트로 구성됩니다. ( 뜨다 4바이트 = 32비트)

그리고   이중 숫자 표현 그리고 뜨다 기호( 기호 ), 지수 및 가수 의 3가지 구성요소로 구성됩니다.  


더블:


뜨다:

당연히 이 형식에는 숫자의 10진수 표현이 없고 2진수만 있습니다.

  • 부호는 1비트입니다. 0이면 +(더하기), 1이면 -(빼기)를 의미합니다.
  • 지수는 숫자 2의 거듭제곱을 저장합니다. float의 경우 -126 10 ~ 127 10 범위일 수 있고 double의 경우 -1022 10 ~ 1023 10일 수 있습니다.
  • 가수 - 이진 형식의 숫자 자체의 소수 부분으로, 이 첫 번째 단위와 쉼표를 고려하지 않고 쉼표가 첫 번째 단위 뒤에 오는 형식으로 축소


숫자의 이진 표현과 소수와의 관계에 대한 약간의 이해:

2 4 = 10000 2 = 16 10

2 3 = 1000 2 = 8 10

2 2 = 100 2 = 4

2 1 = 10 2 = 2

2 0 = 1 2 = 1 10

2 -1 = 0.1 2 =(1/2) 10 = 0.5 10          

2 -2 = 0.01 2 = (1/4) 10 = 0.25 10

2 -3 = 0.001 2 = (1/8) 10 =   0.125 10

2 -4 = 0.0001 2 = (1/16) 10 =   0.0625 10

2 -5 = 0.00001 2 = (1/32) 10 =   0.03125 10

2 -6 = 0.000001 2 = (1/64) 10 = 0.015625 10

2 -7 = 0.0000001 2 = (1/128) 10 = 0.0078125 10

2 -8 = 0.00000001 2 = (1/256) 10 =   0.00390625 10

2 -9 = 0.000000001 2 = (1/512) 10 =   0.001953125 10

2 - 10 = 0.0000000001 2 = (1/1024) 10 =   0.0009765625 10

2 - 11 = 0.00000000001 2 = (1/2048) 10 =   0.00048828125 10

2 - 12 = 0.000000000001 2 = (1/4096) 10 =   0.000244140625 10

2 - 13 = 0.0000000000001 2 = (1/8192) 10 =   0.0001220703125 10

 

double 유형에 대한 예를 고려하십시오 .

예 #1

십진수가 있습니다: 891677.4025191

이 숫자는 이진 형식으로 나타낼 수 있습니다.

11011001101100011101.01100111000010110111101111000101000001111101110001110
(누가 그것을 확인하고 싶어)

주어진 숫자의 가수를 선택하려면 쉼표를 19비트 왼쪽(이 경우)으로 이동하여 첫 번째 단위 뒤에 오도록 합니다.

1. 1011001101100011101011001110000101101111101111000101 000001111101110001110

그러나 우리는 52비트의 가수만 가지고 있습니다. 그래서 우리는 처음 52개의 중요한 비트를 취합니다.

가수 = 1011001101100011101011001110000101101111101111000101

지수 = (19+1023) 10 = 10000010010 2   1023 10 (01111111111 2 )을 더하면 01111111111 2 는 0이고 더 크면 양수이고 더 작으면 음수입니다. 저것들. 지수 값을 다시 얻으려면 11비트 지수 값에서 1023을 빼야 합니다.

전체적으로 891677.4025191 이중 유형에서 다음과 같이 표시됩니다 .

0    10000010010    1011001101100011101011001110000101101111101111000101

하지만 그때부터 이것은 이진 표현이므로 정확히 십진수로 변환합니다.

891677.4025190 99996425211429595947265625가 됩니다.


예 #2

십진수가 있습니다: -0.00000145258556224114

이 숫자는 이진 형식으로 나타낼 수 있습니다.

-0.0000000000000000000110000101111011001101011011101001101010100111001110

첫 번째 단위 뒤에 오도록 쉼표 20자리를 오른쪽으로 이동하여 주어진 숫자의 가수를 선택합니다.

1. 1000010111101100111010110111010011010101001111001110 * 2 -20

가수 = 1000010111101100111010110111010011010101001111001110

지수 = (-20+1023) 10 = 0 1111101011 2

빼기 기호는 첫 번째 비트가 1임을 의미합니다.

전체적으로 -0.00000145258556224114 라는 숫자는 이중 유형에서 다음과 같이 표시됩니다.

1 0 1111101011 1000010111101100111010110111010011010101001111001110

십진수로 변환해 보겠습니다.

그것은 -0.00000145258556224113 991124017968015191826225418481044471263885498046875가 될 것입니다



귀하의 경우 문제는 숫자 0.01에서 발생합니다. 왜냐하면 이중 유형에서는 다음과 같이 표시됩니다.

0 01111111000 0100011110101110000101000111101011100001010001111011

십진수로 변환하면 0.0100000000000000020816681711721685132943093776702880859375 10 과 같습니다.

프레젠테이션과 함께

3 10 = 1.5*2 = 1.1 2 *2 1

5 10 = 2.5*2 = 10.1 2 *2 1

6 10 = 1.5*4 = 1.1 2 *2 2

7 10 = 3.5*2 = 11.1 2 *2 1

괜찮아요.

왜 double 0.01이 실제로 0.01보다 큽니까?

그 이유는 다음과 같습니다.

0 01,111,111,000 010001111010111000001101011110101110111011011101110110111011011011011101101101101110111011668171172168171721685132943093776702880859375 오류 = 0.000 000 000 000 000 208166817 ...

0 01,111,111,000 01000111101011101101010001110101111011101011110110110111010110101111010101000111101 0 - 0.0099999999999998473443341140409756911404097569175064563751220703125 오류 = - 0.000 000 000 000 001 52655666 ...

이 공정 화학을 이해하기 위해 다음 계산기를 사용할 수 있습니다.
https://babbage.cs.qc.cuny.edu/IEEE-754.old/Decimal.html

https://baseconvert.com/ieee-754-floating-point

 
Vladimir Pastushak :

아주 재미있는 수학

결과

2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.06000000 0.01 6.00 다음 로트 = 0.06999999999999999
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.06000000 0.01 6.00 다음 로트 = 0.06999999999999999
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.06000000 0.01 6.00 다음 로트 = 0.06999999999999999
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.06000000 0.01 6.00 다음 로트 = 0.06999999999999999
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.06000000 0.01 6.00 다음 로트 = 0.069999999999999999 0.06000000 + 0.01이 0.06999999999999999가 되는 방법
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.05000000 0.01 5.00 다음 로트 = 0.06
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.04000000 0.01 4.00 다음 로트 = 0.05
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.03000000 0.01 3.00 다음 로트 = 0.04
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.02000000 0.01 2.00 다음 로트 = 0.03
2020.01.05 17:09:28.798 테스터 EURUSD,H1: 0.01000000 0.01 1.00 다음 로트 = 0.02


분수 (이중)의 경우 함수를 사용하는 이유 MathFloor ( 아래에서 가장 가까운 정수 값을 반환) ?
 
Nikolai Semko :

이 질문은 항상 나옵니다.

시원한! 다가오는 꿈을 위해 인터넷을 걸었지만 "마지막 반복은 어디로 갔습니까?"라는 질문에 대답 할 수 있습니까? ;) 이 예에서:

 void OnStart ()
{
   for ( double x = 10.0 ; x <= 20.0 ; x += 0.1 ) {
       printf ( "x = %10.60f" , x);
       Sleep ( 111 );
   }
}

2020.01.06 01:26:11.016 tst_double (EURUSD,H1) x = 10.000000000000000000000000000000000000000000000000000000000

2020.01.06 01:26:11.127 tst_double (EURUSD,H1) x = 10.099999999999999644728632119949907064437866210937500000000000

2020.01.06 01:26:11.239 tst_double (EURUSD,H1) x = 10.199999999999999289457264239899814128875732421875000000000000

2020.01.06 01:26:11.350 tst_double (EURUSD,H1) x = 10.299999999999998934185896359849721193313598632812500000000000

2020.01.06 01:26:11.462 tst_double (EURUSD,H1) x = 10.399999999999998578914528479799628257751464843750000000000000

2020.01.06 01:26:11.574 tst_double (EURUSD,H1) x = 10.499999999999998223643160599749535322189331054687500000000000

2020.01.06 01:26:11.686 tst_double (EURUSD,H1) x = 10.599999999999997868371792719699442386627197265625000000000000

2020.01.06 01:26:11.798 tst_double (EURUSD,H1) x = 10.699999999999997513100424839649349451065063476562500000000000

2020.01.06 01:26:11.910 tst_double (EURUSD,H1) x = 10.799999999999997157829056959599256515502929687500000000000000

2020.01.06 01:26:12.022 tst_double (EURUSD,H1) x = 10.899999999999996802557689079549163579940795898437500000000000

2020.01.06 01:26:12.134 tst_double (EURUSD,H1) x = 10.999999999999996447286321199499070644378662109375000000000000

2020.01.06 01:26:12.246 tst_double (EURUSD,H1) x = 11.099999999999996092014953319448977708816528320312500000000000

2020.01.06 01:26:12.358 tst_double (EURUSD,H1) x = 11.199999999999995736743585439398884773254394531250000000000000

2020.01.06 01:26:12.470 tst_double (EURUSD,H1) x = 11.299999999999995381472217559348791837692260742187500000000000

2020.01.06 01:26:12.582 tst_double (EURUSD,H1) x = 11.399999999999995026200849679298698902130126953125000000000000

2020.01.06 01:26:12.695 tst_double (EURUSD,H1) x = 11.499999999999994670929481799248605966567993164062500000000000

2020.01.06 01:26:12.808 tst_double (EURUSD,H1) x = 11.599999999999994315658113919198513031005859375000000000000000

2020.01.06 01:26:12.920 tst_double (EURUSD,H1) x = 11.699999999999993960386746039148420095443725585937500000000000

2020.01.06 01:26:13.032 tst_double (EURUSD,H1) x = 11.799999999999993605115378159098327159881591796875000000000000

2020.01.06 01:26:13.143 tst_double (EURUSD,H1) x = 11.899999999999993249844010279048234224319458007812500000000000

2020.01.06 01:26:13.254 tst_double (EURUSD,H1) x = 11.999999999999992894572642398998141288757324218750000000000000

2020.01.06 01:26:13.367 tst_double (EURUSD,H1) x = 12.099999999999992539301274518948048353195190429687500000000000

2020.01.06 01:26:13.478 tst_double (EURUSD,H1) x = 12.199999999999992184029906638897955417633056640625000000000000

2020.01.06 01:26:13.590 tst_double (EURUSD,H1) x = 12.299999999999991828758538758847862482070922851562500000000000

2020.01.06 01:26:13.702 tst_double (EURUSD,H1) x = 12.399999999999991473487170878797769546508789062500000000000000

2020.01.06 01:26:13.813 tst_double (EURUSD,H1) x = 12.499999999999991118215802998747676610946655273437500000000000

2020.01.06 01:26:13.925 tst_double (EURUSD,H1) x = 12.599999999999990762944435118697583675384521484375000000000000

2020.01.06 01:26:14.037 tst_double (EURUSD,H1) x = 12.699999999999990407673067238647490739822387695312500000000000

2020.01.06 01:26:14.149 tst_double (EURUSD,H1) x = 12.799999999999990052401699358597397804260253906250000000000000

2020.01.06 01:26:14.261 tst_double (EURUSD,H1) x = 12.899999999999989697130331478547304868698120117187500000000000

2020.01.06 01:26:14.372 tst_double (EURUSD,H1) x = 12.999999999999989341858963598497211933135986328125000000000000

2020.01.06 01:26:14.483 tst_double (EURUSD,H1) x = 13.099999999999988986587595718447118997573852539062500000000000

2020.01.06 01:26:14.596 tst_double (EURUSD,H1) x = 13.19999999999998863131622783839702606201171875000000000000000

2020.01.06 01:26:14.707 tst_double (EURUSD,H1) x = 13.299999999999988276044859958346933126449584960937500000000000

2020.01.06 01:26:14.820 tst_double (EURUSD,H1) x = 13.399999999999987920773492078296840190887451171875000000000000

2020.01.06 01:26:14.932 tst_double (EURUSD,H1) x = 13.499999999999987565502124198246747255325317382812500000000000

2020.01.06 01:26:15.044 tst_double (EURUSD,H1) x = 13.599999999999987210230756318196654319763183593750000000000000

2020.01.06 01:26:15.157 tst_double (EURUSD,H1) x = 13.699999999999986854959388438146561384201049804687500000000000

2020.01.06 01:26:15.270 tst_double (EURUSD,H1) x = 13.799999999999986499688020558096468448638916015625000000000000

2020.01.06 01:26:15.381 tst_double (EURUSD,H1) x = 13.899999999999986144416652678046375513076782226562500000000000

2020.01.06 01:26:15.493 tst_double (EURUSD,H1) x = 13.999999999999985789145284797996282577514648437500000000000000

2020.01.06 01:26:15.604 tst_double (EURUSD,H1) x = 14.099999999999985433873916917946189641952514648437500000000000

2020.01.06 01:26:15.717 tst_double (EURUSD,H1) x = 14.199999999999985078602549037896096706390380859375000000000000

2020.01.06 01:26:15.828 tst_double (EURUSD,H1) x = 14.299999999999984723331181157846003770828247070312500000000000

2020.01.06 01:26:15.941 tst_double (EURUSD,H1) x = 14.399999999999984368059813277795910835266113281250000000000000

2020.01.06 01:26:16.054 tst_double (EURUSD,H1) x = 14.499999999999984012788445397745817899703979492187500000000000

2020.01.06 01:26:16.167 tst_double (EURUSD,H1) x = 14.599999999999983657517077517695724964141845703125000000000000

2020.01.06 01:26:16.280 tst_double (EURUSD,H1) x = 14.699999999999983302245709637645632028579711914062500000000000

2020.01.06 01:26:16.393 tst_double (EURUSD,H1) x = 14.799999999999982946974341757595539093017578125000000000000000

2020.01.06 01:26:16.504 tst_double (EURUSD,H1) x = 14.899999999999982591702973877545446157455444335937500000000000

2020.01.06 01:26:16.615 tst_double (EURUSD,H1) x = 14.999999999999982236431605997495353221893310546875000000000000

2020.01.06 01:26:16.728 tst_double (EURUSD,H1) x = 15.099999999999981881160238117445260286331176757812500000000000

2020.01.06 01:26:16.841 tst_double (EURUSD,H1) x = 15.199999999999981525888870237395167350769042968750000000000000

2020.01.06 01:26:16.953 tst_double (EURUSD,H1) x = 15.299999999999981170617502357345074415206909179687500000000000

2020.01.06 01:26:17.066 tst_double (EURUSD,H1) x = 15.399999999999980815346134477294981479644775390625000000000000

2020.01.06 01:26:17.179 tst_double (EURUSD,H1) x = 15.499999999999980460074766597244888544082641601562500000000000

2020.01.06 01:26:17.290 tst_double (EURUSD,H1) x = 15.599999999999980104803398717194795608520507812500000000000000

2020.01.06 01:26:17.402 tst_double (EURUSD,H1) x = 15.699999999999979749532030837144702672958374023437500000000000

2020.01.06 01:26:17.514 tst_double (EURUSD,H1) x = 15.799999999999979394260662957094609737396240234375000000000000

2020.01.06 01:26:17.627 tst_double (EURUSD,H1) x = 15.899999999999979038989295077044516801834106445312500000000000

2020.01.06 01:26:17.740 tst_double (EURUSD,H1) x = 15.99999999999997868371792719699423866271972656250000000000000

2020.01.06 01:26:17.851 tst_double (EURUSD,H1) x = 16.099999999999980104803398717194795608520507812500000000000000

2020.01.06 01:26:17.964 tst_double (EURUSD,H1) x = 16.199999999999981525888870237395167350769042968750000000000000

2020.01.06 01:26:18.076 tst_double (EURUSD,H1) x = 16.299999999999982946974341757595539093017578125000000000000000

2020.01.06 01:26:18.189 tst_double (EURUSD,H1) x = 16.399999999999984368059813277795910835266113281250000000000000

2020.01.06 01:26:18.302 tst_double (EURUSD,H1) x = 16.499999999999985789145284797996282577514648437500000000000000

2020.01.06 01:26:18.414 tst_double (EURUSD,H1) x = 16.599999999999987210230756318196654319763183593750000000000000

2020.01.06 01:26:18.526 tst_double (EURUSD,H1) x = 16.6999999999999886313162278383970260620117187500000000000000000

2020.01.06 01:26:18.638 tst_double (EURUSD,H1) x = 16.799999999999990052401699358597397804260253906250000000000000

2020.01.06 01:26:18.750 tst_double (EURUSD,H1) x = 16.899999999999991473487170878797769546508789062500000000000000

2020.01.06 01:26:18.861 tst_double (EURUSD,H1) x = 16.999999999999992894572642398998141288757324218750000000000000

2020.01.06 01:26:18.973 tst_double (EURUSD,H1) x = 17.099999999999994315658113919198513031005859375000000000000000

2020.01.06 01:26:19.085 tst_double (EURUSD,H1) x = 17.199999999999995736743585439398884773254394531250000000000000

2020.01.06 01:26:19.197 tst_double (EURUSD,H1) x = 17.299999999999997157829056959599256515502929687500000000000000

2020.01.06 01:26:19.309 tst_double (EURUSD,H1) x = 17.399999999999998578914528479799628257751464843750000000000000

2020.01.06 01:26:19.420 tst_double (EURUSD,H1) x = 17.50000000000000000000000000000000000000000000000000000000

2020.01.06 01:26:19.532 tst_double (EURUSD,H1) x = 17.600000000000001421085471520200371742248535156250000000000000

2020.01.06 01:26:19.644 tst_double (EURUSD,H1) x = 17.700000000000002842170943040400743484497070312500000000000000

2020.01.06 01:26:19.757 tst_double (EURUSD,H1) x = 17.800000000000004263256414560601115226745605468750000000000000

2020.01.06 01:26:19.870 tst_double (EURUSD,H1) x = 17.900000000000005684341886080801486968994140625000000000000000

2020.01.06 01:26:19.982 tst_double (EURUSD,H1) x = 18.000000000000007105427357601001858711242675781250000000000000

2020.01.06 01:26:20.093 tst_double (EURUSD,H1) x = 18.100000000000008526512829121202230453491210937500000000000000

2020.01.06 01:26:20.205 tst_double (EURUSD,H1) x = 18.200000000000009947598300641402602195739746093750000000000000

2020.01.06 01:26:20.316 tst_double (EURUSD,H1) x = 18.3000000000000113686883772161602973937988281250000000000000000

2020.01.06 01:26:20.429 tst_double (EURUSD,H1) x = 18.40000000000012789769243681803345680236816406250000000000000

2020.01.06 01:26:20.542 tst_double (EURUSD,H1) x = 18.500000000000014210854715202003717422485351562500000000000000

2020.01.06 01:26:20.653 tst_double (EURUSD,H1) x = 18.60000000000015631940186722204089164733886718750000000000000

2020.01.06 01:26:20.764 tst_double (EURUSD,H1) x = 18.70000000000017053025658242404460906982421875000000000000000

2020.01.06 01:26:20.877 tst_double (EURUSD,H1) x = 18.800000000000018474111129762604832649230957031250000000000000

2020.01.06 01:26:20.989 tst_double (EURUSD,H1) x = 18.90000000000019895196601282805204391479492187500000000000000

2020.01.06 01:26:21.101 tst_double (EURUSD,H1) x = 19.000000000000021316282072803005576133728027343750000000000000

2020.01.06 01:26:21.213 tst_double (EURUSD,H1) x = 19.100000000000022737367544323205947875976562500000000000000000

2020.01.06 01:26:21.326 tst_double (EURUSD,H1) x = 19.200000000000024158453015843406319618225097656250000000000000

2020.01.06 01:26:21.438 tst_double (EURUSD,H1) x = 19.300000000000025579538487363606691360473632812500000000000000

2020.01.06 01:26:21.551 tst_double (EURUSD,H1) x = 19.400000000000027000623958883807063102722167968750000000000000

2020.01.06 01:26:21.664 tst_double (EURUSD,H1) x = 19.500000000000028421709430404007434844970703125000000000000000

2020.01.06 01:26:21.776 tst_double (EURUSD,H1) x = 19.600000000000029842794901924207806587219238281250000000000000

2020.01.06 01:26:21.887 tst_double (EURUSD,H1) x = 19.700000000000031263880373444408178329467773437500000000000000

2020.01.06 01:26:22.000 tst_double (EURUSD,H1) x = 19.80000000000032684965844964608550071716308593750000000000000

2020.01.06 01:26:22.112 tst_double (EURUSD,H1) x = 19.900000000000034106051316484808921813964843750000000000000000



20.0은 어디로 갔을까?

 
Igor Makanu :

시원한! 다가오는 꿈을 위해 인터넷을 걸었지만 "마지막 반복은 어디로 갔습니까?"라는 질문에 대답 할 수 있습니까? ;) 이 예에서:

20.0은 어디로 갔을까?

모든 것이 간단합니다.

이중 유형의 0.1은 실제로 0.100000000000000055511151231257827021181583404541015625, 즉 0.1 이상입니다.

그 후? 마지막 확인에서 이미 20보다 크거나 10+100*0.100000000000000055511151231257827021181583404541015625 ~ 51115625 ~ 20.0000510000

그리고 사이클이 끝난다.

하지만 이 실험을 하면:

 void OnStart () {
   for ( double x = 0.0 ; x <= 1.0 ; x += 0.01 ) {
       printf ( "x = %10.60f" , x);
   }
}

그런 다음 마지막 반복의 결과:

 2020.01 . 05 16 : 51 : 40.480 TestDouble (EURUSD,M1)  x = 0.970000000000000639488462184090167284011840820312500000000000
2020.01 . 05 16 : 51 : 40.480 TestDouble (EURUSD,M1)  x = 0.980000000000000648370246381091419607400894165039062500000000
2020.01 . 05 16 : 51 : 40.480 TestDouble (EURUSD,M1)  x = 0.990000000000000657252030578092671930789947509765625000000000

그러나 double을 float로 변경하면 결과는 다음과 같습니다.

 2020.01 . 05 16 : 53 : 06.926 TestDouble (EURUSD,M1)  x = 0.979999363422393798828125000000000000000000000000000000000000
2020.01 . 05 16 : 53 : 06.926 TestDouble (EURUSD,M1)  x = 0.989999353885650634765625000000000000000000000000000000000000
2020.01 . 05 16 : 53 : 06.926 TestDouble (EURUSD,M1)  x = 0.999999344348907470703125000000000000000000000000000000000000

double의 경우 0.01이 0.01보다 크고 float의 경우 더 작기 때문입니다.

 
Nikolai Semko :

모든 것이 간단합니다.

이중 유형의 0.1은 실제로 0.100000000000000055511151231257827021181583404541015625, 즉 0.1 이상입니다.

그 후? 마지막 확인에서 이미 20보다 크거나 10+100*0.100000000000000055511151231257827021181583404541015625 ~ 51115625 ~ 20.0000510000

그리고 사이클이 끝난다.

알았어

따라서 for() 루프가 조건을 반복하고 비교하면 문제가 해결됩니다.

다음 코드를 예로 표시할 수도 있습니다.

 void OnStart ()
{
   for ( int x = 10 ; x <= 20 ; x += 1 ) {
       printf ( "x = %10.60f" , x);
       Sleep ( 111 );
   }
}

2020.01.06 01:48:50.513 tst_double (EURUSD,H1) x = 10.0000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:50.642 tst_double (EURUSD,H1) x = 11.00000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:50.767 tst_double (EURUSD,H1) x = 12.00000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:50.892 tst_double (EURUSD,H1) x = 13.00000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.017 tst_double (EURUSD,H1) x = 14.00000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.142 tst_double (EURUSD,H1) x = 15.000000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.267 tst_double (EURUSD,H1) x = 16.000000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.392 tst_double (EURUSD,H1) x = 17.00000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.517 tst_double (EURUSD,H1) x = 18.0000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.642 tst_double (EURUSD,H1) x = 19.000000000000000000000000000000000000000000000000000000000

2020.01.06 01:48:51.767 tst_double (EURUSD,H1) x = 20.00000000000000000000000000000000000000000000000000000000


여기서 예상대로 사이클이 20에 도달했습니다.

 
Nikolai Semko :

이 질문은 항상 나옵니다.
누구나 IEEE 754 표준에 대해 끊임없이 이야기하지만 사람들이 Wikipedia에 가면 복잡성이나 게으름 때문에 이 표준의 의미를 이해하지 못한 채 떠나는 경우가 많습니다.

이 포스트를 나중에 참고할 수 있도록 이 표준을 가능한 한 짧고 간단한 용어로 설명하는 시간을 갖도록 하겠습니다.

진심으로 감사드립니다! 고맙습니다!

이 메시지는 이중 숫자의 작업이라고 할 수 있을 뿐만 아니라 Google에 전송하지 않고도 사용자에게 유능하고 이해하기 쉬운 답변의 예라고 할 수 있습니다.

 
Igor Makanu :

저것들. 마켓에 게시된 사람들의 메시지를 무시할 것을 제안합니까? ...이걸 하고 싶은지 모르겠지만, 질문이 있었고, 토론이 있었고, 제 생각에는 이것이 정상적인 상황이라고 생각합니다.

추신:

부록에서 .... printf()를 통해 이중으로 인쇄하려고 시도하면 "계몽의 정신이 우리를 위해 얼마나 많은 놀라운 발견을 준비하고 있는지에 대해 ..."

;)

나는 아무것도 제안하지 않았고 아무에게도 전화하지 않았습니다. 나는 단지 자신이 쓴 것뿐만 아니라 다른 사람들이 쓴 것을 포럼에서 더 자주 읽을 필요가 있다고 생각합니다. 특히 경험이 없는 사람이 질문을 하는 경우에는 더욱 그렇습니다. 결국, 이러한 질문과 답변에서 많은 유용한 것들을 스스로 배울 수 있습니다. 스스로 생각조차 하지 못한 질문에 대한 답도 찾을 수 있다. 저는 개인적으로 이 IEEE 754 표준에 대해 훨씬 더 일찍 초보자의 질문을 읽고 배웠습니다. 진짜 새내기들... 이것은 블라디미르가 당신에게 답장을 보낼 때 보낸 바로 그 메시지입니다.

 
Alexey Viktorov :

나는 아무것도 제안하지 않았고 아무에게도 전화하지 않았습니다. 나는 단지 자신이 쓴 것뿐만 아니라 다른 사람들이 쓴 것을 포럼에서 더 자주 읽을 필요가 있다고 생각합니다. 특히 경험이 없는 사람이 질문을 하는 경우에는 더욱 그렇습니다. 결국, 이러한 질문과 답변에서 많은 유용한 것들을 스스로 배울 수 있습니다. 스스로 생각조차 하지 못한 질문에 대한 답도 찾을 수 있다. 저는 개인적으로 이 IEEE 754 표준에 대해 훨씬 더 일찍 초보자의 질문을 읽고 배웠습니다. 진짜 새내기들... 이것은 블라디미르가 당신에게 답장을 보낼 때 보낸 바로 그 메시지입니다.

5센트를 추가하겠습니다. 모든 IMHO. 프로그래밍을 1년 이상 하고 밑을 배우지 않는 것은 매우 이상한 일이며, 부동 소수점 수의 수학은 바로 밑입니다. 부두와 표준만이 러시아 민주주의의 아버지를 구할 수 있습니다. 신중하게 담배를 피우십시오.
 
Vladimir Pastushak :

진심으로 감사드립니다! 고맙습니다!

이 메시지는 이중 숫자의 작업이라고 할 수 있을 뿐만 아니라 Google에 전송하지 않고도 사용자에게 유능하고 이해하기 쉬운 답변의 예라고 할 수 있습니다.

별말씀을요 :)

 

나는 종종 화살표 코드를 찾지 않지만 도움말에서 찾기가 매우 어렵습니다!

이것은 별표, 원 등이있는 판입니다.

그리고 검색은 올바른 것 외에는 무엇이든 생성합니다!