欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [原创]函数fracpart有BUG?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有6726人关注过本帖树形打印复制链接

主题:[原创]函数fracpart有BUG?

帅哥哟,离线,有人找我吗?
z7c9
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
[原创]函数fracpart有BUG?  发帖心情 Post By:2011/1/9 16:47:04 [只看该作者]

Test:

以下内容为程序代码:

1 frac:fracpart(mindiff*100),linethick0;

 

在黄金连续上的结果为1?

 

图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
fly
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/1/10 9:15:17 [只看该作者]

感谢提交,下个版本会更正.



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2011/1/10 10:07:46 [只看该作者]

这是CPU的浮点运算误差导致的问题,CPU在进行浮点数的乘除运算时,不可避免的会出现一定的误差,比如mindiff*100这种情况我们会认为是1,但实际上计算结果是0.99999994等这种情况,所以在出现需要小数位的精确结果时,需要对浮点数进行强行的小数位整理才行。

AA:=ROUNDS( mindiff*100,0 );
frac:fracpart(AA),linethick0;

 

这样就正确了



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
tittat
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:233 积分:1540 威望:0 精华:0 注册:2010/9/28 10:54:47
  发帖心情 Post By:2011/1/10 12:27:35 [只看该作者]

是的,要用round将数圆整。这不能算作bug,即使高级语言编程中也会有此类问题。

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/1/10 12:47:22 [只看该作者]

我也去测试了一下,发现一个问题

fracpart(-0.01)  返回的结果是 -0.99   正确应该是 -0.01

fracpart(-3.4)  返回的结果是   -0.6     正确应该是 -0.4

 

只要是负数,返回的结果都不对。除非是小数点刚好是 .5


 回到顶部
帅哥哟,离线,有人找我吗?
admin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/1/10 13:01:29 [只看该作者]

金字塔采用向下取整取小数方法,对于取绝对小数位,做绝对值处理即可


 回到顶部