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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → FLOOR以及INTPART函数BUG

   

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


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

主题:FLOOR以及INTPART函数BUG

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


加好友 发短信
等级:论坛游侠 帖子:331 积分:1092 威望:0 精华:0 注册:2012/1/22 13:41:47
FLOOR以及INTPART函数BUG  发帖心情 Post By:2012/11/22 2:34:56 [只看该作者]

比如股指

LL:INTPART(2311.2/mindiff)*mindiff;

 

输出的是2311,而不是2311.2

 

同理

LL2:FLOOR(2311.2/MINDIFF)*MINDIFF;

也一样出错

 

把MINDIFF换成0.2,BUG依然存在


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


加好友 发短信
等级:论坛游侠 帖子:331 积分:1092 威望:0 精华:0 注册:2012/1/22 13:41:47
  发帖心情 Post By:2012/11/22 2:57:47 [只看该作者]

但直接把2311.2/0.2=11556这个值

代入floor里面,

floor(11556)*0.2=2311.2却是正确的~

 

说明floor(2311.2/0.2)计算有误!


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/11/22 9:07:46 [只看该作者]

测试的确是有bug,感谢用户提交的bug!


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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/11/22 9:21:11 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121122092054.png
图片点击可在新窗口打开查看


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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


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

这是CPU的浮点计算误差导致,参考下面的解决方法

 

DD:=2311.2/mindiff; //经过该计算后会导致结果为 11555.99999999这样的数字,因此进行整理后再转整数
LL:INTPART(ROUNDS(dd ,1 ))*mindiff;

参考 http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=13558&replyID=61492&skin=1



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

金字塔-技术部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:331 积分:1092 威望:0 精华:0 注册:2012/1/22 13:41:47
  发帖心情 Post By:2012/11/22 17:14:10 [只看该作者]

其实我是想在开空的时候,往不利方向取整而已~

比如2311.21-2311.39,我如果想把它取为2311.2,这种算法就不行了~

FLOOR(rounds(2311.39/mindiff,1))*mindiff得出来是2311.4

 


 回到顶部