错误、漏洞、问题 - 页 2623 1...261626172618261926202621262226232624262526262627262826292630...3184 新评论 Nikolai Semko 2020.01.05 20:41 #26221 Vladimir Pastushak: 颇具娱乐性的数学 结果 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 这是一个反复出现的问题。 每个人都在谈论 IEEE 标准 754,但往往当人们去看维基百科时,或者因为复杂,或者因为懒惰,他们没有理解标准的含义就离开了。 我将花一点时间尝试用简单的语言尽可能简要地解释这个标准,以便进一步参考这个帖子。 因此, ,类型 为双倍,包括8个字节=64位。(float 4字节=32比特) 而 双数 和浮点数 的数字表示 由3个部分组成:符号、指数和尾数。 双打。 漂浮物。 自然,这种格式的数字没有十进制表示,只有二进制。 符号是1位。如果是0,就是+(加),如果是1,就是-(减)。 指数存储的是数字2的度数。对于浮点数可以在-12610到12710的范围内,对于双数可以在-102210 到102310的范围内。 尾数是二进制形式的数字本身的小数部分,简化为一种形式,其中逗号站在第一个单位之后,不考虑该第一个单位和逗号 对数字的二进制表示法及其与十进制数字的关系有一点了解。 24= 100002 = 1610 23= 10002 = 810 22= 1002 = 4 21=102= 2 20=12=110 2-1= 0.12=(1/2)10= 0.510 2-2= 0.012 = (1/4)10= 0.2510 2-3= 0.0012 = (1/8)10= 0.12510 2-4= 0.00012 = (1/16)10 = 0.062510 2-5= 0.000012 = (1/32)10 = 0.0312510 2-6= 0.0000012 = (1/64)10= 0.01562510 2-7= 0.00000012 = (1/128)10= 0.007812510 2-8= 0.000000012 = (1/256)10 = 0.0039062510 2-9= 0.0000000012 = (1/512)10 = 0.00195312510 2-10= 0.00000000012 = (1/1024)10= 0.000976562510 2-11= 0.000000000012 = (1/2048)10= 0.0004882812510 2-12= 0.0000000000012 = (1/4096)10= 0.00024414062510 2-13= 0.00000000000012 = (1/8192)10= 0.000122070312510 让我们考虑一下 双重类型的例子 。 例子1 我们有一个十进制的数字:891677.4025191 这个数字可以用二进制形式表示。 1101100110110001110101.011001110000101101110111110110001000001111111010001110 (谁想查就查))。 我们提取给定数字的尾数,只需将逗号19位向左移动(在本例中),使其位于第一个单位之后。 1.1011001101100011101011001110000101101111101111000101000001111101110001110* 219 但我们的尾数只有52位。所以我们取前52个有效位 Мантисса =1011001101100011101011001110000101101111101111000101 指数=(19+1023)10=100000100102(由于指数是一个有符号的数字,而且指数可以是负数(例如如果我们有0.0000042132),我们需要将 1023加到10(011111111112),0111111112是零,一切多了就是正数,少了就是负数。换句话说,为了得到指数的反向值,我们需要从指数的11位值中减去1023。 总的来说,我们的号码891677.4025191 在类型上会有 如下的 双倍。 0100000100101011001101100011101011001110000101101111101111000101 但由于这是一个二进制表示法,让我们把它准确地转换为十进制。 那将是891677.402519099996425211429595947265625 例子#2 我们有一个十进制的数字:-0.00000145258556224114 这个数字可以用二进制形式表示。 -0.000000000000000000011000010111101100111010110111010011010101001111001110 我们提取这个数字的尾数,只需将逗号向右移动20位,使其位于第一个数字之后。 1.1000010111101100111010110111010011010101001111001110* 2-20 Мантисса =1000010111101100111010110111010011010101001111001110 指数=(-20+1023)10=011111010112 减号,所以第一位是1。 我们的总数-0.00000145258556224114,在双倍类型中看起来如下。 1011111010111000010111101100111010110111010011010101001111001110 将其精确转换为十进制。 это будет-0.00000145258556224113991124017968015191826225418481044471263885498046875 在你的案例中,问题发生在数字0.01上,因为在双倍类型中,它将被表示成这样。 0 01111111000 0100011110101110000101000111101011100001010001111011 当转换为十进制符号系统时,等于0.010000000000000000208166817117216858513294309377670288085937510 而具有代表性的是 310= 1.5*2 =1.12*21 510= 2.5*2 = 10.12*21 610= 1.5*4 =1.12*22 710 = 3.5*2 = 11.12*21 没问题。 为什么双0.01的数字真的比0.01大? 原因就在这里。 0 01111111000 010001111010111010000101011101001010001111011 - 0.01000000000000000020816681711721685132943093776702880859375误差=0.000 000 000 000 000 208166817... 0 01111111000 01000111101011100001011110111001010001111010 - 0.00999999999999984734433411404097569175064563751220703125误差= - 0.000 000 000 000 001 5265566... 要了解这个过程的化学,你可以玩一玩这些计算器。https://babbage.cs.qc.cuny.edu/IEEE-754.old/Decimal.html https://baseconvert.com/ieee-754-floating-point Errors, bugs, questions MQL5 中的矩阵和向量操作 反向交易: 减少最大回撤以及在其它市场上测试 SEM 2020.01.05 20:57 #26222 Vladimir Pastushak:颇具娱乐性的数学结果2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手 = 0.0699999999999 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手=0.0699999999999 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0。01 6.00 下一手=0.0699999999999 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手=0。06999999999 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手=0.0699999999999如0。06000000 + 0.01变成0.0699999999999 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.05000000 0.01 5.00 下一手=0.06 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.04000000 0.01 4.00 下一手=0.05 2020.01.05 17:09:28。798 Testert EURUSD,H1: 0.03000000 0.01 3.00 下一手 = 0.04 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.02000000 0.01 2.00 下一手 = 0.03 2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.01000000 0.01 1.00 下手 = 0.02 为什么对小数 (双数)使用函数 MathFloor (返回下面最接近的整数 值)? Igor Makanu 2020.01.05 21:28 #26223 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.0000000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:26:11.127 tst_double (EURUSD,H1) x = 10.09999999999644728632119994990706443786621093750000000 2020.01.06 01:26:11.239 tst_double (EURUSD,H1) x = 10.1999999999928945726423989981412887573242187500000000 2020.01.06 01:26:11.350 tst_double (EURUSD,H1) x = 10.2999999999998934185896359849721193313598632812500000000000 2020.01.06 01:26:11.462 tst_double (EURUSD,H1) x = 10.399999999999985978914528479799628257751464843750000000000000 2020.01.06 01:26:11.574 tst_double (EURUSD,H1) x = 10.499999999999822364316059974953532218933105468750000000 2020.01.06 01:26:11.686 tst_double (EURUSD,H1) x = 10.59999999999978968371792719699442386627197265600000000 2020.01.06 01:26:11.798 tst_double (EURUSD,H1) x = 10.6999999999999999759751310042483964934945106506347656250000000 2020.01.06 01:26:11.910 tst_double (EURUSD,H1) x = 10.799999999999715999715782905695992565155029687500000000 2020.01.06 01:26:12.022 tst_double (EURUSD,H1) x = 10.89999999999999699808025579079549163579940795898437500000000000 2020.01.06 01:26:12.134 tst_double (EURUSD,H1) x = 10.9999999999964472863232119949907064437866210937500000000 2020.01.06 01:26:12.246 tst_double (EURUSD,H1) x = 11.09999999999960920194953319448977708816528320312500000000000 2020.01.06 01:26:12.358 tst_double (EURUSD,H1) x = 11.199999999999995795435567854393988847732543945312500000000000 2020.01.06 01:26:12.470 tst_double (EURUSD,H1) x = 11.2999999999999999538147221755934879183769226074218750000000 2020.01.06 01:26:12.582 tst_double (EURUSD,H1) x = 11.3999999999995095026200849679298698902130126953125000000000 2020.01.06 01:26:12.695 tst_double (EURUSD,H1) x = 11.49999999999467092948179924860596656799316406250000000 2020.01.06 01:26:12.808 tst_double (EURUSD,H1) x = 11.5999999999999431565811391919851303100585937500000000000 2020.01.06 01:26:12.920 tst_double (EURUSD,H1) x = 11.699999999999993993960386746039148420044372558593750000000 2020.01.06 01:26:13.032 tst_double (EURUSD,H1) x = 11.79999999999999360511537815159098327159881591796897500000000 2020.01.06 01:26:13.143 tst_double (EURUSD,H1) x = 11.8999999999993294984401027904823422431945458007812500000000000 2020.01.06 01:26:13.254 tst_double (EURUSD,H1) x = 11.9999999999992894572642398998141288757324218750000000 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.19999999999929918402990663889795541763305664062500000000 2020.01.06 01:26:13.590 tst_double (EURUSD,H1) x = 12.2999999999999918282875853875884786248207092285156250000000 2020.01.06 01:26:13.702 tst_double (EURUSD,H1) x = 12.3999999999999147348717087879779569546508789062500000000 2020.01.06 01:26:13.813 tst_double (EURUSD,H1) x = 12.4999999999991191121821580299874767661094665527343750000000 2020.01.06 01:26:13.925 tst_double (EURUSD,H1) x = 12.59999999999999076294443511869758367538452148437500000000 2020.01.06 01:26:14.037 tst_double (EURUSD,H1) x = 12.6999999999999090407673067238647490739822387695312500000000000 2020.01.06 01:26:14.149 tst_double (EURUSD,H1) x = 12.799999999999009005240169935859739780426025390625000000000 2020.01.06 01:26:14.261 tst_double (EURUSD,H1) x = 12.89999999999898969713033147854730484869812011718750000000 2020.01.06 01:26:14.372 tst_double (EURUSD,H1) x = 12.9999999999989341858963598497211933135986328125000000000000 2020.01.06 01:26:14.483 tst_double (EURUSD,H1) x = 13.0999999998898898658759571844711899757385253906250000000 2020.01.06 01:26:14.596 tst_double (EURUSD,H1) x = 13.19999999999886313162278383939702606201171875000000000000 2020.01.06 01:26:14.707 tst_double (EURUSD,H1) x = 13.299999999889276044859958346933126449584960937500000000 2020.01.06 01:26:14.820 tst_double (EURUSD,H1) x = 13.39999999999998792077349207829684019088745117187500000000 2020.01.06 01:26:14.932 tst_double (EURUSD,H1) x = 13.4999999999999998755021241982467472553253173812500000000000 2020.01.06 01:26:15.044 tst_double (EURUSD,H1) x = 13.599999999999987281023027563181966543197631835937500000000000 2020.01.06 01:26:15.157 tst_double (EURUSD,H1) x = 13.699999999998685495938843814656138010424980468750000000 2020.01.06 01:26:15.270 tst_double (EURUSD,H1) x = 13.799999999998649968802055809646844863891601562500000000 2020.01.06 01:26:15.381 tst_double (EURUSD,H1) x = 13.8999999999986991444166526780463755130307678222656250000000 2020.01.06 01:26:15.493 tst_double (EURUSD,H1) x = 13.9999999999985789178914528479762998257751464843750000000000 2020.01.06 01:26:15.604 tst_double (EURUSD,H1) x = 14.099999999998598543387391691794618964195251464843750000000 2020.01.06 01:26:15.717 tst_double (EURUSD,H1) x = 14.1999999999985087860254903789609670639038085937500000000 2020.01.06 01:26:15.828 tst_double (EURUSD,H1) x = 14.2999999999999849723331181157846003770708282470312500000000000 2020.01.06 01:26:15.941 tst_double (EURUSD,H1) x = 14.399999999849999843680598132777959108352661132812500000000000 2020.01.06 01:26:16.054 tst_double (EURUSD,H1) x = 14.49999999984998401278844539774581789970397949218750000000 2020.01.06 01:26:16.167 tst_double (EURUSD,H1) x = 14.59999999999839965751707751769572496414184570312500000000 2020.01.06 01:26:16.280 tst_double (EURUSD,H1) x = 14.699999999999983833022454570963764563202857971191406250000000 2020.01.06 01:26:16.393 tst_double (EURUSD,H1) x = 14.799999999999982946947434175759553909301757812500000000000 2020.01.06 01:26:16.504 tst_double (EURUSD,H1) x = 14.89999999999999982591709297387754544615745544433593750000000 2020.01.06 01:26:16.615 tst_double (EURUSD,H1) x = 14.999999999998223643160599749535322189331054687500000000 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.19999999999898152588887023739516737350769090429680000000 2020.01.06 01:26:16.953 tst_double (EURUSD,H1) x = 15.299999999999981170617502357345074415206909179689750000000 2020.01.06 01:26:17.066 tst_double (EURUSD,H1) x = 15.3999999999999808081534613447729498147964477539062500000000 2020.01.06 01:26:17.179 tst_double (EURUSD,H1) x = 15.49999999999808046007476659724488854408264160156250000000 2020.01.06 01:26:17.290 tst_double (EURUSD,H1) x = 15.5999999999999801048033987171947956085205078125000000000000 2020.01.06 01:26:17.402 tst_double (EURUSD,H1) x = 15.6999999999999797974974953203083714470267295837402343750000000 2020.01.06 01:26:17.514 tst_double (EURUSD,H1) x = 15.7999999999999797939424260662957094609737396240237500000000 2020.01.06 01:26:17.627 tst_double (EURUSD,H1) x = 15.899999999999999790938989295077044516801834106445312500000000000 2020.01.06 01:26:17.740 tst_double (EURUSD,H1) x = 15.9999999999978371792719619442386627197265625000000000000000 2020.01.06 01:26:17.851 tst_double (EURUSD,H1) x = 16.09999999999801048033987171947956085205050781250000000000 2020.01.06 01:26:17.964 tst_double (EURUSD,H1) x = 16.19999999999815998158870237395167373507690904296875000000000 2020.01.06 01:26:18.076 tst_double (EURUSD,H1) x = 16.2999999999982946947434175759553909301757812500000000000 2020.01.06 01:26:18.189 tst_double (EURUSD,H1) x = 16.399999999998499849984368080598132777959108352661132812500000000000 2020.01.06 01:26:18.302 tst_double (EURUSD,H1) x = 16.499999999998599857891789145284797996262825775146484375000000000000 2020.01.06 01:26:18.414 tst_double (EURUSD,H1) x = 16.59999999999998721023075631819665431976318359375000000000 2020.01.06 01:26:18.526 tst_double (EURUSD,H1) x = 16.69999999999886313162278383970260620117187500000000 2020.01.06 01:26:18.638 tst_double (EURUSD,H1) x = 16.799999999999009005240169935859739780426025390625000000000 2020.01.06 01:26:18.750 tst_double (EURUSD,H1) x = 16.89999999999147348717087879779569546508789062500000000 2020.01.06 01:26:18.861 tst_double (EURUSD,H1) x = 16.999999999999289459726423989981488757324218750000000000000 2020.01.06 01:26:18.973 tst_double (EURUSD,H1) x = 17.0999999999999431565811391919851303100585937500000000000 2020.01.06 01:26:19.085 tst_double (EURUSD,H1) x = 17.19999999999999573957954358543939888477325439453125000000000 2020.01.06 01:26:19.197 tst_double (EURUSD,H1) x = 17.2999999999997157829056959925651550292968750000000000 2020.01.06 01:26:19.309 tst_double (EURUSD,H1) x = 17.3999999999998597891452847979962825775146484375000000000 2020.01.06 01:26:19.420 tst_double (EURUSD,H1) x = 17.5000000000000000000000000000000000000000000000000000000000 2020.01.06 01:26:19.532 tst_double (EURUSD,H1) x = 17.6000000000000014210854715202003737174224853515625000000000 2020.01.06 01:26:19.644 tst_double (EURUSD,H1) x = 17.70000000000000284217094303040400743434449707031250000000000000 2020.01.06 01:26:19.757 tst_double (EURUSD,H1) x = 17.800000000000426363256414560601115226745605468750000000000000 2020.01.06 01:26:19.870 tst_double (EURUSD,H1) x = 17.9000000000005684341886080801486968994140625000000000000000 2020.01.06 01:26:19.982 tst_double (EURUSD,H1) x = 18.00000000000000710542735760100185871124267578125000000000 2020.01.06 01:26:20.093 tst_double (EURUSD,H1) x = 18.10000000000000852651282912120223045349121093750000000000 2020.01.06 01:26:20.205 tst_double (EURUSD,H1) x = 18.20000000000000994759830064140260219573974609375000000000 2020.01.06 01:26:20.316 tst_double (EURUSD,H1) x = 18.3000000000011368683772160297393798828125000000000000 2020.01.06 01:26:20.429 tst_double (EURUSD,H1) x = 18.40000000000127897692436818033456802368164062500000000000 2020.01.06 01:26:20.542 tst_double (EURUSD,H1) x = 18.500000000142108547152020037371742248535156250000000000 2020.01.06 01:26:20.653 tst_double (EURUSD,H1) x = 18.6000000000000156319401867222020408916473388671875000000000 2020.01.06 01:26:20.764 tst_double (EURUSD,H1) x = 18.7000000000017053052582424044609069824218750000000 2020.01.06 01:26:20.877 tst_double (EURUSD,H1) x = 18.80000000018474111129762626048326492309570312500000000 2020.01.06 01:26:20.989 tst_double (EURUSD,H1) x = 18.90000000000001989519660128280520439147949218750000000000 2020.01.06 01:26:21.101 tst_double (EURUSD,H1) x = 19.000000000000021316282072803003005576133728027343750000000000000 2020.01.06 01:26:21.213 tst_double (EURUSD,H1) x = 19.1000000000022737367544443232059478977597656250000000000000 2020.01.06 01:26:21.326 tst_double (EURUSD,H1) x = 19.20000000024158453015843406319618225097656250000000000000 2020.01.06 01:26:21.438 tst_double (EURUSD,H1) x = 19.3000000000025579538487363609669136047363232812500000000 2020.01.06 01:26:21.551 tst_double (EURUSD,H1) x = 19.4000000000000276239588838080706310272216796875000000000 2020.01.06 01:26:21.664 tst_double (EURUSD,H1) x = 19.5000000000028421709430304040074343444970703125000000000000000 2020.01.06 01:26:21.776 tst_double (EURUSD,H1) x = 19.6000000000029842794901924207806587219238282812500000000000 2020.01.06 01:26:21.887 tst_double (EURUSD,H1) x = 19.700000000000031212638680803734444081783294677343750000000000 2020.01.06 01:26:22.000 tst_double (EURUSD,H1) x = 19.80000000000326849844960855007171630859375000000000 2020.01.06 01:26:22.112 tst_double (EURUSD,H1) x = 19.9000000003410605131648480892181396484375000000000000 严肃地说,我想了解并解释20.0在哪里? Errors, bugs, questions Why my stop loss VPS not working Nikolai Semko 2020.01.05 21:43 #26224 Igor Makanu: 酷!你一直在睡觉前上网,但你能回答 "最后一次迭代去了哪里 "的问题吗?;)在这个例子中。 严肃地说,我想弄清楚并解释20.0的去向? 嗯,这是很直接的。 双重类型中的0.1实际上是0.100000000000000000055511151231257827021181583404541015625,即超过了0.1。 因此,在最后一次检查时,它已经超过了20,更确切地说,是10+100*0.100000000000000000055511151231257827021181583404541015625 ~ 20.00000000000000000000555111512312578 周而复始 而如果我们做这个实验。 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 因为双数的0.01大于0.01,而浮点数的0.01则小于0.01。 Igor Makanu 2020.01.05 21:50 #26225 Nikolai Semko: 就这么简单。 0.1在双倍型中实际上是0.10000000000000000005511151231257827021181583404541015625,这比0.1大。 因此,在最后一次检查时,它已经超过了20,更确切地说,是10+100*0.100000000000000000055511151231257827021181583404541015625 ~ 20.00000000000000000055111512312578 周而复始 好了,明白了。 是的,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.0000000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:50.642 tst_double (EURUSD,H1) x = 11.000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:50.767 tst_double (EURUSD,H1) x = 12.0000000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:50.892 tst_double (EURUSD,H1) x = 13.000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.017 tst_double (EURUSD,H1) x = 14.000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.142 tst_double (EURUSD,H1) x = 15.00000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.267 tst_double (EURUSD,H1) x = 16.0000000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.392 tst_double (EURUSD,H1) x = 17.000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.517 tst_double (EURUSD,H1) x = 18.00000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.642 tst_double (EURUSD,H1) x = 19.0000000000000000000000000000000000000000000000000000000000000000000000000 2020.01.06 01:48:51.767 tst_double (EURUSD,H1) x = 20.000000000000000000000000000000000000000000000000000000000000000000000 正如预期的那样,当循环达到20个时就被终止了。 Errors, bugs, questions Flexible Time Charts for Any questions from newcomers Vladimir Pastushak 2020.01.06 05:11 #26226 Nikolai Semko: 这是一个经常出现的问题。 每个人都在谈论 IEEE 标准 754,但往往当人们去看维基百科时--要么是因为复杂,要么是因为懒惰,他们没有理解标准的含义就离开了。 我将花一点时间,尽量用简单的文字来解释这个标准,以便将来参考这个帖子。 我感谢你,从我的心底。谢谢你! 这条信息不仅可以作为双数的工作原理来参考,还可以作为一个例子,给用户一个合格的、可以理解的答案,而不需要发送googling。 Alexey Viktorov 2020.01.06 07:15 #26227 Igor Makanu: 所以你的意思是,那些在市场上发帖的人应该被忽视?我不确定我会想这样做,有一个问题,有一个讨论,我认为这是一个正常的情况。 PS。 在此基础上,....试图通过printf()取消打印双倍,我怀疑会有很多 "启蒙精神为我们准备了多少奇妙的发现"。 ;) 我没有建议任何事情,也没有叫任何人做任何事情。我只是认为,你应该在论坛上更多地阅读,不仅是你自己写的东西,也包括其他人写的东西。特别是如果一些真正没有经验的人提出问题。因为正是在这些问题和答案中可以为自己学到很多东西。你甚至可以找到一个你根本没有想到的问题的答案。关于这个标准IEEE 754,我个人了解得更早,只是阅读了初学者的问题。真正的初学者...这是给弗拉基米尔的信息,是对你的回应。 Vladimir Simakov 2020.01.06 07:53 #26228 Alexey Viktorov: 我没有建议任何事情,也没有叫任何人做任何事情。我只是认为,你应该在论坛上更多地阅读,不仅是你自己写的东西,也包括其他人写的东西。特别是如果一些真正没有经验的人提出问题。因为正是在这些问题和答案中可以为自己学到很多东西。你甚至可以找到一个你根本没有想到的问题的答案。关于这个标准IEEE 754,我个人了解得更早,只是阅读了初学者的问题。真正的初学者...这是给弗拉基米尔的信息,是对你的回应。 我将补充我的5分钱。一切都是IMHO。做了一年多的编程,不研究基数是非常奇怪的,而浮点数的数学正是基数。因此,只有码头和标准才能拯救俄罗斯(而不仅仅是)民主之父。深思熟虑地吸食它们。 Nikolai Semko 2020.01.06 09:14 #26229 Vladimir Pastushak: 我感谢你,从我的心底。谢谢你! 你可以参考这篇帖子,不仅是双数的工作原理,也是一个例子,一个合格的、可以理解的对用户的回答,不需要发送google。 不客气 :) Михаил 2020.01.06 10:05 #26230 我不经常寻找箭头代码,但它们在帮助中令人难以置信地难以找到!"。 它是一个带有星号、圆圈等的表格。 而搜索的结果除了正确的之外,还有任何东西! 1...261626172618261926202621262226232624262526262627262826292630...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
颇具娱乐性的数学
结果
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00
这是一个反复出现的问题。
每个人都在谈论 IEEE 标准 754,但往往当人们去看维基百科时,或者因为复杂,或者因为懒惰,他们没有理解标准的含义就离开了。
我将花一点时间尝试用简单的语言尽可能简要地解释这个标准,以便进一步参考这个帖子。
因此, ,类型 为双倍,包括8个字节=64位。(float 4字节=32比特)
而 双数 和浮点数 的数字表示 由3个部分组成:符号、指数和尾数。
双打。
漂浮物。
自然,这种格式的数字没有十进制表示,只有二进制。
对数字的二进制表示法及其与十进制数字的关系有一点了解。
24= 100002 = 1610
23= 10002 = 810
22= 1002 = 4
21=102= 2
20=12=110
2-1= 0.12=(1/2)10= 0.510
2-2= 0.012 = (1/4)10= 0.2510
2-3= 0.0012 = (1/8)10= 0.12510
2-4= 0.00012 = (1/16)10 = 0.062510
2-5= 0.000012 = (1/32)10 = 0.0312510
2-6= 0.0000012 = (1/64)10= 0.01562510
2-7= 0.00000012 = (1/128)10= 0.007812510
2-8= 0.000000012 = (1/256)10 = 0.0039062510
2-9= 0.0000000012 = (1/512)10 = 0.00195312510
2-10= 0.00000000012 = (1/1024)10= 0.000976562510
2-11= 0.000000000012 = (1/2048)10= 0.0004882812510
2-12= 0.0000000000012 = (1/4096)10= 0.00024414062510
2-13= 0.00000000000012 = (1/8192)10= 0.000122070312510
让我们考虑一下 双重类型的例子 。
例子1
我们有一个十进制的数字:891677.4025191
这个数字可以用二进制形式表示。
1101100110110001110101.011001110000101101110111110110001000001111111010001110
(谁想查就查))。
我们提取给定数字的尾数,只需将逗号19位向左移动(在本例中),使其位于第一个单位之后。
1.1011001101100011101011001110000101101111101111000101000001111101110001110* 219
但我们的尾数只有52位。所以我们取前52个有效位
Мантисса =1011001101100011101011001110000101101111101111000101
指数=(19+1023)10=100000100102(由于指数是一个有符号的数字,而且指数可以是负数(例如如果我们有0.0000042132),我们需要将 1023加到10(011111111112),0111111112是零,一切多了就是正数,少了就是负数。换句话说,为了得到指数的反向值,我们需要从指数的11位值中减去1023。
总的来说,我们的号码891677.4025191 在类型上会有 如下的 双倍。
0100000100101011001101100011101011001110000101101111101111000101
但由于这是一个二进制表示法,让我们把它准确地转换为十进制。
那将是891677.402519099996425211429595947265625
例子#2
我们有一个十进制的数字:-0.00000145258556224114
这个数字可以用二进制形式表示。
-0.000000000000000000011000010111101100111010110111010011010101001111001110
我们提取这个数字的尾数,只需将逗号向右移动20位,使其位于第一个数字之后。
1.1000010111101100111010110111010011010101001111001110* 2-20
Мантисса =1000010111101100111010110111010011010101001111001110
指数=(-20+1023)10=011111010112
减号,所以第一位是1。
我们的总数-0.00000145258556224114,在双倍类型中看起来如下。
1011111010111000010111101100111010110111010011010101001111001110
将其精确转换为十进制。
это будет-0.00000145258556224113991124017968015191826225418481044471263885498046875
在你的案例中,问题发生在数字0.01上,因为在双倍类型中,它将被表示成这样。
0 01111111000 0100011110101110000101000111101011100001010001111011
当转换为十进制符号系统时,等于0.010000000000000000208166817117216858513294309377670288085937510
而具有代表性的是
310= 1.5*2 =1.12*21
510= 2.5*2 = 10.12*21
610= 1.5*4 =1.12*22
710 = 3.5*2 = 11.12*21
没问题。
为什么双0.01的数字真的比0.01大?
原因就在这里。
0 01111111000 010001111010111010000101011101001010001111011 - 0.01000000000000000020816681711721685132943093776702880859375误差=0.000 000 000 000 000 208166817...
0 01111111000 01000111101011100001011110111001010001111010 - 0.00999999999999984734433411404097569175064563751220703125误差= - 0.000 000 000 000 001 5265566...
要了解这个过程的化学,你可以玩一玩这些计算器。
https://babbage.cs.qc.cuny.edu/IEEE-754.old/Decimal.html
https://baseconvert.com/ieee-754-floating-point
颇具娱乐性的数学
结果
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手 = 0.0699999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手=0.0699999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0。01 6.00 下一手=0.0699999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手=0。06999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00 下一手=0.0699999999999如0。06000000 + 0.01变成0.0699999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.05000000 0.01 5.00 下一手=0.06
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.04000000 0.01 4.00 下一手=0.05
2020.01.05 17:09:28。798 Testert EURUSD,H1: 0.03000000 0.01 3.00 下一手 = 0.04
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.02000000 0.01 2.00 下一手 = 0.03
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.01000000 0.01 1.00 下手 = 0.02
这个问题经常出现。
酷!你在互联网上梦游,但你能回答 "上一次迭代去了哪里 "的问题吗?;)在这个例子中。
2020.01.06 01:26:11.016 tst_double (EURUSD,H1) x = 10.0000000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:26:11.127 tst_double (EURUSD,H1) x = 10.09999999999644728632119994990706443786621093750000000
2020.01.06 01:26:11.239 tst_double (EURUSD,H1) x = 10.1999999999928945726423989981412887573242187500000000
2020.01.06 01:26:11.350 tst_double (EURUSD,H1) x = 10.2999999999998934185896359849721193313598632812500000000000
2020.01.06 01:26:11.462 tst_double (EURUSD,H1) x = 10.399999999999985978914528479799628257751464843750000000000000
2020.01.06 01:26:11.574 tst_double (EURUSD,H1) x = 10.499999999999822364316059974953532218933105468750000000
2020.01.06 01:26:11.686 tst_double (EURUSD,H1) x = 10.59999999999978968371792719699442386627197265600000000
2020.01.06 01:26:11.798 tst_double (EURUSD,H1) x = 10.6999999999999999759751310042483964934945106506347656250000000
2020.01.06 01:26:11.910 tst_double (EURUSD,H1) x = 10.799999999999715999715782905695992565155029687500000000
2020.01.06 01:26:12.022 tst_double (EURUSD,H1) x = 10.89999999999999699808025579079549163579940795898437500000000000
2020.01.06 01:26:12.134 tst_double (EURUSD,H1) x = 10.9999999999964472863232119949907064437866210937500000000
2020.01.06 01:26:12.246 tst_double (EURUSD,H1) x = 11.09999999999960920194953319448977708816528320312500000000000
2020.01.06 01:26:12.358 tst_double (EURUSD,H1) x = 11.199999999999995795435567854393988847732543945312500000000000
2020.01.06 01:26:12.470 tst_double (EURUSD,H1) x = 11.2999999999999999538147221755934879183769226074218750000000
2020.01.06 01:26:12.582 tst_double (EURUSD,H1) x = 11.3999999999995095026200849679298698902130126953125000000000
2020.01.06 01:26:12.695 tst_double (EURUSD,H1) x = 11.49999999999467092948179924860596656799316406250000000
2020.01.06 01:26:12.808 tst_double (EURUSD,H1) x = 11.5999999999999431565811391919851303100585937500000000000
2020.01.06 01:26:12.920 tst_double (EURUSD,H1) x = 11.699999999999993993960386746039148420044372558593750000000
2020.01.06 01:26:13.032 tst_double (EURUSD,H1) x = 11.79999999999999360511537815159098327159881591796897500000000
2020.01.06 01:26:13.143 tst_double (EURUSD,H1) x = 11.8999999999993294984401027904823422431945458007812500000000000
2020.01.06 01:26:13.254 tst_double (EURUSD,H1) x = 11.9999999999992894572642398998141288757324218750000000
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.19999999999929918402990663889795541763305664062500000000
2020.01.06 01:26:13.590 tst_double (EURUSD,H1) x = 12.2999999999999918282875853875884786248207092285156250000000
2020.01.06 01:26:13.702 tst_double (EURUSD,H1) x = 12.3999999999999147348717087879779569546508789062500000000
2020.01.06 01:26:13.813 tst_double (EURUSD,H1) x = 12.4999999999991191121821580299874767661094665527343750000000
2020.01.06 01:26:13.925 tst_double (EURUSD,H1) x = 12.59999999999999076294443511869758367538452148437500000000
2020.01.06 01:26:14.037 tst_double (EURUSD,H1) x = 12.6999999999999090407673067238647490739822387695312500000000000
2020.01.06 01:26:14.149 tst_double (EURUSD,H1) x = 12.799999999999009005240169935859739780426025390625000000000
2020.01.06 01:26:14.261 tst_double (EURUSD,H1) x = 12.89999999999898969713033147854730484869812011718750000000
2020.01.06 01:26:14.372 tst_double (EURUSD,H1) x = 12.9999999999989341858963598497211933135986328125000000000000
2020.01.06 01:26:14.483 tst_double (EURUSD,H1) x = 13.0999999998898898658759571844711899757385253906250000000
2020.01.06 01:26:14.596 tst_double (EURUSD,H1) x = 13.19999999999886313162278383939702606201171875000000000000
2020.01.06 01:26:14.707 tst_double (EURUSD,H1) x = 13.299999999889276044859958346933126449584960937500000000
2020.01.06 01:26:14.820 tst_double (EURUSD,H1) x = 13.39999999999998792077349207829684019088745117187500000000
2020.01.06 01:26:14.932 tst_double (EURUSD,H1) x = 13.4999999999999998755021241982467472553253173812500000000000
2020.01.06 01:26:15.044 tst_double (EURUSD,H1) x = 13.599999999999987281023027563181966543197631835937500000000000
2020.01.06 01:26:15.157 tst_double (EURUSD,H1) x = 13.699999999998685495938843814656138010424980468750000000
2020.01.06 01:26:15.270 tst_double (EURUSD,H1) x = 13.799999999998649968802055809646844863891601562500000000
2020.01.06 01:26:15.381 tst_double (EURUSD,H1) x = 13.8999999999986991444166526780463755130307678222656250000000
2020.01.06 01:26:15.493 tst_double (EURUSD,H1) x = 13.9999999999985789178914528479762998257751464843750000000000
2020.01.06 01:26:15.604 tst_double (EURUSD,H1) x = 14.099999999998598543387391691794618964195251464843750000000
2020.01.06 01:26:15.717 tst_double (EURUSD,H1) x = 14.1999999999985087860254903789609670639038085937500000000
2020.01.06 01:26:15.828 tst_double (EURUSD,H1) x = 14.2999999999999849723331181157846003770708282470312500000000000
2020.01.06 01:26:15.941 tst_double (EURUSD,H1) x = 14.399999999849999843680598132777959108352661132812500000000000
2020.01.06 01:26:16.054 tst_double (EURUSD,H1) x = 14.49999999984998401278844539774581789970397949218750000000
2020.01.06 01:26:16.167 tst_double (EURUSD,H1) x = 14.59999999999839965751707751769572496414184570312500000000
2020.01.06 01:26:16.280 tst_double (EURUSD,H1) x = 14.699999999999983833022454570963764563202857971191406250000000
2020.01.06 01:26:16.393 tst_double (EURUSD,H1) x = 14.799999999999982946947434175759553909301757812500000000000
2020.01.06 01:26:16.504 tst_double (EURUSD,H1) x = 14.89999999999999982591709297387754544615745544433593750000000
2020.01.06 01:26:16.615 tst_double (EURUSD,H1) x = 14.999999999998223643160599749535322189331054687500000000
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.19999999999898152588887023739516737350769090429680000000
2020.01.06 01:26:16.953 tst_double (EURUSD,H1) x = 15.299999999999981170617502357345074415206909179689750000000
2020.01.06 01:26:17.066 tst_double (EURUSD,H1) x = 15.3999999999999808081534613447729498147964477539062500000000
2020.01.06 01:26:17.179 tst_double (EURUSD,H1) x = 15.49999999999808046007476659724488854408264160156250000000
2020.01.06 01:26:17.290 tst_double (EURUSD,H1) x = 15.5999999999999801048033987171947956085205078125000000000000
2020.01.06 01:26:17.402 tst_double (EURUSD,H1) x = 15.6999999999999797974974953203083714470267295837402343750000000
2020.01.06 01:26:17.514 tst_double (EURUSD,H1) x = 15.7999999999999797939424260662957094609737396240237500000000
2020.01.06 01:26:17.627 tst_double (EURUSD,H1) x = 15.899999999999999790938989295077044516801834106445312500000000000
2020.01.06 01:26:17.740 tst_double (EURUSD,H1) x = 15.9999999999978371792719619442386627197265625000000000000000
2020.01.06 01:26:17.851 tst_double (EURUSD,H1) x = 16.09999999999801048033987171947956085205050781250000000000
2020.01.06 01:26:17.964 tst_double (EURUSD,H1) x = 16.19999999999815998158870237395167373507690904296875000000000
2020.01.06 01:26:18.076 tst_double (EURUSD,H1) x = 16.2999999999982946947434175759553909301757812500000000000
2020.01.06 01:26:18.189 tst_double (EURUSD,H1) x = 16.399999999998499849984368080598132777959108352661132812500000000000
2020.01.06 01:26:18.302 tst_double (EURUSD,H1) x = 16.499999999998599857891789145284797996262825775146484375000000000000
2020.01.06 01:26:18.414 tst_double (EURUSD,H1) x = 16.59999999999998721023075631819665431976318359375000000000
2020.01.06 01:26:18.526 tst_double (EURUSD,H1) x = 16.69999999999886313162278383970260620117187500000000
2020.01.06 01:26:18.638 tst_double (EURUSD,H1) x = 16.799999999999009005240169935859739780426025390625000000000
2020.01.06 01:26:18.750 tst_double (EURUSD,H1) x = 16.89999999999147348717087879779569546508789062500000000
2020.01.06 01:26:18.861 tst_double (EURUSD,H1) x = 16.999999999999289459726423989981488757324218750000000000000
2020.01.06 01:26:18.973 tst_double (EURUSD,H1) x = 17.0999999999999431565811391919851303100585937500000000000
2020.01.06 01:26:19.085 tst_double (EURUSD,H1) x = 17.19999999999999573957954358543939888477325439453125000000000
2020.01.06 01:26:19.197 tst_double (EURUSD,H1) x = 17.2999999999997157829056959925651550292968750000000000
2020.01.06 01:26:19.309 tst_double (EURUSD,H1) x = 17.3999999999998597891452847979962825775146484375000000000
2020.01.06 01:26:19.420 tst_double (EURUSD,H1) x = 17.5000000000000000000000000000000000000000000000000000000000
2020.01.06 01:26:19.532 tst_double (EURUSD,H1) x = 17.6000000000000014210854715202003737174224853515625000000000
2020.01.06 01:26:19.644 tst_double (EURUSD,H1) x = 17.70000000000000284217094303040400743434449707031250000000000000
2020.01.06 01:26:19.757 tst_double (EURUSD,H1) x = 17.800000000000426363256414560601115226745605468750000000000000
2020.01.06 01:26:19.870 tst_double (EURUSD,H1) x = 17.9000000000005684341886080801486968994140625000000000000000
2020.01.06 01:26:19.982 tst_double (EURUSD,H1) x = 18.00000000000000710542735760100185871124267578125000000000
2020.01.06 01:26:20.093 tst_double (EURUSD,H1) x = 18.10000000000000852651282912120223045349121093750000000000
2020.01.06 01:26:20.205 tst_double (EURUSD,H1) x = 18.20000000000000994759830064140260219573974609375000000000
2020.01.06 01:26:20.316 tst_double (EURUSD,H1) x = 18.3000000000011368683772160297393798828125000000000000
2020.01.06 01:26:20.429 tst_double (EURUSD,H1) x = 18.40000000000127897692436818033456802368164062500000000000
2020.01.06 01:26:20.542 tst_double (EURUSD,H1) x = 18.500000000142108547152020037371742248535156250000000000
2020.01.06 01:26:20.653 tst_double (EURUSD,H1) x = 18.6000000000000156319401867222020408916473388671875000000000
2020.01.06 01:26:20.764 tst_double (EURUSD,H1) x = 18.7000000000017053052582424044609069824218750000000
2020.01.06 01:26:20.877 tst_double (EURUSD,H1) x = 18.80000000018474111129762626048326492309570312500000000
2020.01.06 01:26:20.989 tst_double (EURUSD,H1) x = 18.90000000000001989519660128280520439147949218750000000000
2020.01.06 01:26:21.101 tst_double (EURUSD,H1) x = 19.000000000000021316282072803003005576133728027343750000000000000
2020.01.06 01:26:21.213 tst_double (EURUSD,H1) x = 19.1000000000022737367544443232059478977597656250000000000000
2020.01.06 01:26:21.326 tst_double (EURUSD,H1) x = 19.20000000024158453015843406319618225097656250000000000000
2020.01.06 01:26:21.438 tst_double (EURUSD,H1) x = 19.3000000000025579538487363609669136047363232812500000000
2020.01.06 01:26:21.551 tst_double (EURUSD,H1) x = 19.4000000000000276239588838080706310272216796875000000000
2020.01.06 01:26:21.664 tst_double (EURUSD,H1) x = 19.5000000000028421709430304040074343444970703125000000000000000
2020.01.06 01:26:21.776 tst_double (EURUSD,H1) x = 19.6000000000029842794901924207806587219238282812500000000000
2020.01.06 01:26:21.887 tst_double (EURUSD,H1) x = 19.700000000000031212638680803734444081783294677343750000000000
2020.01.06 01:26:22.000 tst_double (EURUSD,H1) x = 19.80000000000326849844960855007171630859375000000000
2020.01.06 01:26:22.112 tst_double (EURUSD,H1) x = 19.9000000003410605131648480892181396484375000000000000
严肃地说,我想了解并解释20.0在哪里?
酷!你一直在睡觉前上网,但你能回答 "最后一次迭代去了哪里 "的问题吗?;)在这个例子中。
严肃地说,我想弄清楚并解释20.0的去向?
嗯,这是很直接的。
双重类型中的0.1实际上是0.100000000000000000055511151231257827021181583404541015625,即超过了0.1。
![](https://c.mql5.com/3/303/image__19.png)
因此,在最后一次检查时,它已经超过了20,更确切地说,是10+100*0.100000000000000000055511151231257827021181583404541015625 ~ 20.00000000000000000000555111512312578
周而复始
而如果我们做这个实验。
则为最后一次迭代的结果。
但如果我们把double改为float,结果将是。
因为双数的0.01大于0.01,而浮点数的0.01则小于0.01。
![](https://c.mql5.com/3/303/image__20.png)
就这么简单。
0.1在双倍型中实际上是0.10000000000000000005511151231257827021181583404541015625,这比0.1大。
因此,在最后一次检查时,它已经超过了20,更确切地说,是10+100*0.100000000000000000055511151231257827021181583404541015625 ~ 20.00000000000000000055111512312578
周而复始
好了,明白了。
是的,for()循环将进行迭代并比较条件,问题已经解决了。
你可以把这段代码作为一个例子。
2020.01.06 01:48:50.513 tst_double (EURUSD,H1) x = 10.0000000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:50.642 tst_double (EURUSD,H1) x = 11.000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:50.767 tst_double (EURUSD,H1) x = 12.0000000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:50.892 tst_double (EURUSD,H1) x = 13.000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.017 tst_double (EURUSD,H1) x = 14.000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.142 tst_double (EURUSD,H1) x = 15.00000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.267 tst_double (EURUSD,H1) x = 16.0000000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.392 tst_double (EURUSD,H1) x = 17.000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.517 tst_double (EURUSD,H1) x = 18.00000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.642 tst_double (EURUSD,H1) x = 19.0000000000000000000000000000000000000000000000000000000000000000000000000
2020.01.06 01:48:51.767 tst_double (EURUSD,H1) x = 20.000000000000000000000000000000000000000000000000000000000000000000000
正如预期的那样,当循环达到20个时就被终止了。
这是一个经常出现的问题。
每个人都在谈论 IEEE 标准 754,但往往当人们去看维基百科时--要么是因为复杂,要么是因为懒惰,他们没有理解标准的含义就离开了。
我将花一点时间,尽量用简单的文字来解释这个标准,以便将来参考这个帖子。
我感谢你,从我的心底。谢谢你!
这条信息不仅可以作为双数的工作原理来参考,还可以作为一个例子,给用户一个合格的、可以理解的答案,而不需要发送googling。
所以你的意思是,那些在市场上发帖的人应该被忽视?我不确定我会想这样做,有一个问题,有一个讨论,我认为这是一个正常的情况。
PS。
在此基础上,....试图通过printf()取消打印双倍,我怀疑会有很多 "启蒙精神为我们准备了多少奇妙的发现"。
;)
我没有建议任何事情,也没有叫任何人做任何事情。我只是认为,你应该在论坛上更多地阅读,不仅是你自己写的东西,也包括其他人写的东西。特别是如果一些真正没有经验的人提出问题。因为正是在这些问题和答案中可以为自己学到很多东西。你甚至可以找到一个你根本没有想到的问题的答案。关于这个标准IEEE 754,我个人了解得更早,只是阅读了初学者的问题。真正的初学者...这是给弗拉基米尔的信息,是对你的回应。
我没有建议任何事情,也没有叫任何人做任何事情。我只是认为,你应该在论坛上更多地阅读,不仅是你自己写的东西,也包括其他人写的东西。特别是如果一些真正没有经验的人提出问题。因为正是在这些问题和答案中可以为自己学到很多东西。你甚至可以找到一个你根本没有想到的问题的答案。关于这个标准IEEE 754,我个人了解得更早,只是阅读了初学者的问题。真正的初学者...这是给弗拉基米尔的信息,是对你的回应。
我感谢你,从我的心底。谢谢你!
你可以参考这篇帖子,不仅是双数的工作原理,也是一个例子,一个合格的、可以理解的对用户的回答,不需要发送google。
不客气 :)
我不经常寻找箭头代码,但它们在帮助中令人难以置信地难以找到!"。
它是一个带有星号、圆圈等的表格。
而搜索的结果除了正确的之外,还有任何东西!