以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  ROUND()函数是5舍6入?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=2390)

--  作者:paulshen
--  发布时间:2010/8/7 17:20:20
--  ROUND()函数是5舍6入?
我测试的结果是Round()执行5舍6入,是bug吗?
--  作者:金字塔
--  发布时间:2010/8/7 19:44:13
--  

我这里(两台电脑,两个版本)没问题,你再试试

input:N(7.5,0,9,1);
NN1:ROUND(N);

 

输出:8


--  作者:paulshen
--  发布时间:2010/8/9 11:02:14
--  ROUND()函数是5舍6入?

今天我又试了一下,就对了。可那天明明看到的是不对的。可能是我的电脑问题。


--  作者:paulshen
--  发布时间:2010/9/5 8:43:53
--  
再次碰到这个问题,反复验证的结果是Round(0.5)返回0,其它情况下都是对的,所以请特别测一下round(0.5)的这个特定case。
[此贴子已经被作者于2010-9-5 8:44:06编辑过]

--  作者:wattwei
--  发布时间:2010/9/5 10:15:37
--  
 奇怪,测了一下没问题啊。round(0.5)等于1

--  作者:paulshen
--  发布时间:2010/9/5 15:25:28
--  

的确是怪事,下面的计算在我这儿返回是0:

FR:FRACPART(2926.2)/0.2-0.5,linethick0;
RO:ROUND(FR),linethick0;

 

FR显示为0.5,但RO却是0。

 

难道和FRACPART有关?我也验证了ROUND(0.5) 和 Round(A/B),A=5,B=10的情况,在我这儿也是对的。

[此贴子已经被作者于2010-9-5 15:25:41编辑过]

--  作者:admin
--  发布时间:2010/9/5 15:27:46
--  

应该是与CPU的处理浮点问题的差别,不必为此这么叫真吧。

你可以使用,ROUNDS 函数强行整理一个四舍五入的数值


--  作者:paulshen
--  发布时间:2010/9/5 15:37:57
--  
我在验证公式的时候恰好碰到了,就想弄个明白。这个误差影响,一手是0.2*300=60元人民币,如果是10手就是600元,100手是6000元,说大不大说小不小。