绕过MQL4和MQL5中的Digits(),获取任何数字的小数位数(不仅仅是引号)。 - 页 5 123456789101112...22 新评论 Алексей Тарабанов 2018.11.03 23:16 #41 A100:你需要一个 以致于 其结果是。4正好四个?让我们行动起来吧。 A100 2018.11.03 23:27 #42 fxsaber:也许这正是你需要的功能。回答了TC的问题 他恰恰需要这样一个函数,因为(正如你正确指出的)不是所有的数字都可以精确地表示为双数,这意味着在不指定精度的情况下解决问题是没有意义的(因为在一般情况下会导致荒谬的结果)。 Alexandr Sokolov 2018.11.04 08:13 #43 A100:他需要的正是这一点,因为(正如你正确指出的)不是所有的数字都能准确地表示为双数,这意味着在不指定准确度的情况下解决问题是没有意义的(因为一般来说,它导致了荒谬的结果)。在不改变小数点位数 的情况下,有什么办法可以指定精度,或者如何消除我在版本中描述的缺点?对我自己来说,我只发现了(字符串)值 Dmitry Fedoseev 2018.11.05 02:46 #44 Alexandr Sokolov:在不改变小数点位数 的情况下,有什么办法可以指定精度,或者如何消除我在版本中描述的缺点?对我自己来说,我只发现了(字符串)值我猜你的意思是在什么范围内寻找最后的非零。 Igor Makanu 2018.11.05 03:26 #45 我试着通过MathMod()进行小数位数的计算,连续除数0.1,然后是0.01......0.000(15个零)1,没有成功,数字的准确性不断 "浮动",每次都需要归一化,如果使用归一化,那么就更容易比较你想要的数字和归一化的符号是什么--如果不同,那么找到最后的符号 HH:还有一个选择,没有时间检查--将一个没有整数部分的实数乘以10^16,并将其全部保存在long中,然后除以10并检查除法的余数,如果=0,则再次除以 Alexey Viktorov 2018.11.05 06:49 #46 Igor Makanu: ZS:还有一个选择,我还没有时间检查--将一个没有整数部分的实数乘以10^16,并全部保存在lon中,然后除以10,并检查除法的余数,如果=0,则再除。这是不可能的。 Aliaksandr Hryshyn 2018.11.05 07:39 #47 使用双倍的Point()。十进制对数,符号弃权... Alexey Viktorov 2018.11.05 07:41 #48 Aliaksandr Hryshyn: 使用双倍的Point()。十进制对数,符号被丢弃...也经过测试,不可能。 就这样了。 void OnStart() { double p = 0.07; Print(p); }/*******************************************************************/ 它给出了这样的结果 2018.11.05 10:43:05.138 !00 (GBPJPY,H1) 0.07000000000000001 猜测三倍的对数是什么... Aliaksandr Hryshyn 2018.11.05 07:45 #49 Alexey Viktorov: 也测试过,不能用。 为什么不呢?进一步四舍五入到整数。 Aliaksandr Hryshyn 2018.11.05 07:47 #50 看看Point()函数 返回什么。 123456789101112...22 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你需要一个
以致于
其结果是。4
正好四个?让我们行动起来吧。
也许这正是你需要的功能。回答了TC的问题
他恰恰需要这样一个函数,因为(正如你正确指出的)不是所有的数字都可以精确地表示为双数,这意味着在不指定精度的情况下解决问题是没有意义的(因为在一般情况下会导致荒谬的结果)。
他需要的正是这一点,因为(正如你正确指出的)不是所有的数字都能准确地表示为双数,这意味着在不指定准确度的情况下解决问题是没有意义的(因为一般来说,它导致了荒谬的结果)。
在不改变小数点位数 的情况下,有什么办法可以指定精度,或者如何消除我在版本中描述的缺点?对我自己来说,我只发现了(字符串)值
在不改变小数点位数 的情况下,有什么办法可以指定精度,或者如何消除我在版本中描述的缺点?对我自己来说,我只发现了(字符串)值
我猜你的意思是在什么范围内寻找最后的非零。
我试着通过MathMod()进行小数位数的计算,连续除数0.1,然后是0.01......0.000(15个零)1,没有成功,数字的准确性不断 "浮动",每次都需要归一化,如果使用归一化,那么就更容易比较你想要的数字和归一化的符号是什么--如果不同,那么找到最后的符号
HH:还有一个选择,没有时间检查--将一个没有整数部分的实数乘以10^16,并将其全部保存在long中,然后除以10并检查除法的余数,如果=0,则再次除以
ZS:还有一个选择,我还没有时间检查--将一个没有整数部分的实数乘以10^16,并全部保存在lon中,然后除以10,并检查除法的余数,如果=0,则再除。
这是不可能的。
使用双倍的Point()。
也经过测试,不可能。
就这样了。
它给出了这样的结果
也测试过,不能用。