文章 "在 MQL4 中处理双精度浮点数" 新评论 MetaQuotes 2016.04.12 10:15 新文章 在 MQL4 中处理双精度浮点数已发布:在本文中我们将研究典型的编程错误,这种错误在处理 MQL4 程序中的双精度数值时会出现。由于是双精度浮点格式,其储存的准确度受到限制。 例如,如果我们假设精确度不受限制,从理论上讲,对于任何的双精度浮点数 A 和 B,以下的表达式始终成立: (A/B)*(B)=A, A-(A/B)*B=0, (A/B)*(B/A)=1 等 小数位在计算机内储存的准确度取决于小数部分大小,并限制在 52 位。 为了说明该情况,我们来看看以下的例子: 在第一个循环(i)中,我们计算 23 的阶乘(从 2 到 23 的整数的乘积),结果为: 23!=25852016738884976640000. 结果储存在双精度类型的变量 a 中。 在下一个循环(j)中,我们将得到的结果 a 除以从 23 到 2 的所有整数。 最后我们期待的结果是 a=1。#include <stdlib.mqh> int start() { int maxfact=23; double a=1; for (int i=2; i<=maxfact; i++) { a=a*i; } for (int j=maxfact; j>=2; j--) { a=a/j; } Alert(" a=",DoubleToStrMorePrecision(a,16)); return(0); }作者:MetaQuotes Software Corp. 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
新文章 在 MQL4 中处理双精度浮点数已发布:
在本文中我们将研究典型的编程错误,这种错误在处理 MQL4 程序中的双精度数值时会出现。
由于是双精度浮点格式,其储存的准确度受到限制。
例如,如果我们假设精确度不受限制,从理论上讲,对于任何的双精度浮点数 A 和 B,以下的表达式始终成立:
(A/B)*(B)=A,
A-(A/B)*B=0,
(A/B)*(B/A)=1 等
小数位在计算机内储存的准确度取决于小数部分大小,并限制在 52 位。 为了说明该情况,我们来看看以下的例子:
在第一个循环(i)中,我们计算 23 的阶乘(从 2 到 23 的整数的乘积),结果为: 23!=25852016738884976640000. 结果储存在双精度类型的变量 a 中。
在下一个循环(j)中,我们将得到的结果 a 除以从 23 到 2 的所有整数。 最后我们期待的结果是 a=1。
作者:MetaQuotes Software Corp.