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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于FLOOR函数使用问题

   

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


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

主题:关于FLOOR函数使用问题

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


加好友 发短信
等级:新手上路 帖子:90 积分:0 威望:0 精华:0 注册:2020/2/6 10:38:34
关于FLOOR函数使用问题  发帖心情 Post By:2020/2/16 22:33:26    Post IP:223.74.169.2[只看该作者]


CC:=4889.26;

T1: FLOOR(CC/0.2)*0.2;      //正确=4889.2
T2: T1/0.2;                        //正确=24446
T3: FLOOR( T2);                //错误=24445  (按道理应该等于24446)
T4: FLOOR(T1 /0.2)*0.2;    //错误=4889     (再经过一次FLOOR操作后少了一个做小交易单元)


看下上面的计算过程,第三步按道理应该对于24446,为什么错了?

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/2/16 23:03:32    Post IP:101.88.208.219[只看该作者]

T3是因为float类型数据造成的。T2在float类型中,可能是2444.5.99999.这种情况你自己在C语言等中可以看到。

 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
xxinstar100
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:90 积分:0 威望:0 精华:0 注册:2020/2/6 10:38:34
关于FLOOR函数使用问题  发帖心情 Post By:2020/2/17 8:57:08    Post IP:223.74.169.2[只看该作者]



有什么办法能调准不偏差,4889.26,取最小交易单元后应当是4889.2才对

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/2/17 9:04:30    Post IP:180.169.30.6[只看该作者]

没办法。数据类型造成的。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2020/2/17 9:05:40    Post IP:60.174.169.30[只看该作者]

a:=4889.26;
b:floor(a*10)/10

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


加好友 发短信
等级:新手上路 帖子:90 积分:0 威望:0 精华:0 注册:2020/2/6 10:38:34
FLOOR函数使用  发帖心情 Post By:2020/2/17 12:35:13    Post IP:223.74.169.2[只看该作者]

乘以5效果更好,能保证最小交易单位为0.2

b:floor(a*5)/5

除以0.2 改成 乘以5 效果就不一样了,与预期的一致

 回到顶部