错误、漏洞、问题 - 页 2623

 
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

 
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返回下面最接近的整数 值)?
 
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在哪里?

 
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。

 
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个时就被终止了。

 
Nikolai Semko:

这是一个经常出现的问题。
每个人都在谈论 IEEE 标准 754,但往往当人们去看维基百科时--要么是因为复杂,要么是因为懒惰,他们没有理解标准的含义就离开了。

我将花一点时间,尽量用简单的文字来解释这个标准,以便将来参考这个帖子。

我感谢你,从我的心底。谢谢你!

这条信息不仅可以作为双数的工作原理来参考,还可以作为一个例子,给用户一个合格的、可以理解的答案,而不需要发送googling。

 
Igor Makanu:

所以你的意思是,那些在市场上发帖的人应该被忽视?我不确定我会想这样做,有一个问题,有一个讨论,我认为这是一个正常的情况。

PS。

在此基础上,....试图通过printf()取消打印双倍,我怀疑会有很多 "启蒙精神为我们准备了多少奇妙的发现"。

;)

我没有建议任何事情,也没有叫任何人做任何事情。我只是认为,你应该在论坛上更多地阅读,不仅是你自己写的东西,也包括其他人写的东西。特别是如果一些真正没有经验的人提出问题。因为正是在这些问题和答案中可以为自己学到很多东西。你甚至可以找到一个你根本没有想到的问题的答案。关于这个标准IEEE 754,我个人了解得更早,只是阅读了初学者的问题。真正的初学者...这是给弗拉基米尔的信息,是对你的回应。

 
Alexey Viktorov:

我没有建议任何事情,也没有叫任何人做任何事情。我只是认为,你应该在论坛上更多地阅读,不仅是你自己写的东西,也包括其他人写的东西。特别是如果一些真正没有经验的人提出问题。因为正是在这些问题和答案中可以为自己学到很多东西。你甚至可以找到一个你根本没有想到的问题的答案。关于这个标准IEEE 754,我个人了解得更早,只是阅读了初学者的问题。真正的初学者...这是给弗拉基米尔的信息,是对你的回应。

我将补充我的5分钱。一切都是IMHO。做了一年多的编程,不研究基数是非常奇怪的,而浮点数的数学正是基数。因此,只有码头和标准才能拯救俄罗斯(而不仅仅是)民主之父。深思熟虑地吸食它们。
 
Vladimir Pastushak:

我感谢你,从我的心底。谢谢你!

你可以参考这篇帖子,不仅是双数的工作原理,也是一个例子,一个合格的、可以理解的对用户的回答,不需要发送google。

不客气 :)

 

我不经常寻找箭头代码,但它们在帮助中令人难以置信地难以找到!"。

它是一个带有星号、圆圈等的表格。

而搜索的结果除了正确的之外,还有任何东西!