以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 关于FLOOR函数使用问题 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=174336) |
-- 作者:xxinstar100 -- 发布时间:2020/2/16 22:33:26 -- 关于FLOOR函数使用问题 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 -- 发布时间:2020/2/16 23:03:32 -- T3是因为float类型数据造成的。T2在float类型中,可能是2444.5.99999.这种情况你自己在C语言等中可以看到。
|
-- 作者:xxinstar100 -- 发布时间:2020/2/17 8:57:08 -- 关于FLOOR函数使用问题 有什么办法能调准不偏差,4889.26,取最小交易单元后应当是4889.2才对
|
-- 作者:wenarm -- 发布时间:2020/2/17 9:04:30 -- 没办法。数据类型造成的。 |
-- 作者:yukizzc -- 发布时间:2020/2/17 9:05:40 -- a:=4889.26; b:floor(a*10)/10 |
-- 作者:xxinstar100 -- 发布时间:2020/2/17 12:35:13 -- FLOOR函数使用 乘以5效果更好,能保证最小交易单位为0.2 除以0.2 改成 乘以5 效果就不一样了,与预期的一致
|