Foxtable(狐表)用户栏目专家坐堂 → FOX中的四舍五入ROUND()函数也太不好用了吧?


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

主题:FOX中的四舍五入ROUND()函数也太不好用了吧?

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
FOX中的四舍五入ROUND()函数也太不好用了吧?  发帖心情 Post By:2008/9/5 12:56:00 [显示全部帖子]

贴子已被锁定

    在表达式中,没有四舍五入函数也就算了,贺老师说不太好加,就麻烦点用代码来实现吧!但我看到后面,在代码部分的 Round()函数竟然也不是四舍五入,好像是什么四舍六入五成双!可能我对编程了解有限,不太明白这样的四舍六入五成双函数有什么特殊的重大用途,但我只知道,在管理软件中或者日常计算中,无论在哪个编程工具或者电子表格软件中,四舍五入函数都是最常用也是最简单的函数之一,但不知道在FOX这样优秀、使用简便、功能强大的好软件中,竟然没有一个直接实现四舍五入的函数,还要编一个复杂的转换公式或者通过代码才能实现,这太让人不可理解了吧!
   贺老师千万不要说开发FOX的开发工具中也没有四舍五入函数,不管是不是事实,我认为,FOX本身也是功能很强的开发工具,不管用什么开发的,都应想办法自定义一个这样的函数,我想这应该是没有技术难度的,所以不太明白为什么没有这样做!
[此贴子已经被作者于2008-9-5 13:55:25编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/9/5 13:53:00 [显示全部帖子]

以下是引用smileboy在2008-9-5 12:59:00的发言:

如何实现四舍五入

表达式并没有提供传统的四舍五入函数Round,我们只能用Convert函数来间接实现。

例如金额列原来的计算公式为:

[数量] * [单价] * (1 - [折扣])

为了保留两位小数,可以将公式改为:

Convert([数量] * [单价] * (1 - [折扣]) * 100, 'System.Int64') / 100

原理很简单:将计算结果乘以100,然后取整,最后除以100。

如果你要保留三位小数,将表达式中的100改为1000即可,其余类推。

这个我肯定知道,我的意思是,在别的软件中很简单的事情,为什么非要把它变得那么复杂呢?不就是四舍五入吧,有那么复杂吗?做一个这样的函数应该是没有太大问题的呀!

[此贴子已经被作者于2008-9-5 13:56:09编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/9/5 13:55:00 [显示全部帖子]

以下是引用ylm在2008-9-5 13:35:00的发言:

四舍六入五成双是一种精确度的计数保留法.舍入规律是"四舍六入五成双",这里"四"是小于五的意思,"六"是大于五的意思,"五"是舍入位之后的尾数逢五的话看前一位,奇进偶不进,就像1.25,因为2是偶数,所以是1.2。又像1.35,因为3是奇数,所以是1.4,明不明白,这个是数据统计需要的.

        从统计学的角度,"四舍六入五成双"比"四舍五入"要科学,它使舍入后的结果有的变大,有的变小,更平均.而不是像四舍五入那样逢五就入,导致结果偏向大数.
例如:1.15+1.25+1.35+1.45=5.2,若按四舍五入取一位小数计算
1.2+1.3+1.4+1.5=5.4
按"四舍六入五成双"计算,1.2+1.2+1.4+1.4=5.2,舍入后的结果更能反映实际结果

我认为做为一个开发工具,尤其像FOX这样作为普通大众用的开发工具和数据库软件,不能只看是不是科学是不是符合统计学的原理,而应该以大家的实际需要为主要目的,强烈建议在表达式中和代码中都改进或增加四舍五入函数!
    希望不要因为一个小小的四舍五入函数给大家在使用中增加那么多麻烦!

[此贴子已经被作者于2008-9-5 13:57:17编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/9/5 14:03:00 [显示全部帖子]

以下是引用擎天柱在2008-9-5 13:59:00的发言:
四舍六入五成双在统计学中是必需的,相对易表有了改进。不过四舍五入也是大众化的。“两全”则“齐美”了。

支持,如果四舍六入五成双在统计学中必需,建议再增加一个普通的四舍五入也行!我认为绝大部分用户用到的还普通的四舍五入。


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/9/5 15:24:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-9-5 14:48:00的发言:
呵呵,其实大多数软件的四舍五入都是这样的,这样更符合统计原理。
传统的四舍五入可以自己写啊,很容易的,例如对X保留两位小数:

int(x * 100 +0.5) / 100

很简单,所以就没有专门做一个了。
[此贴子已经被作者于2008-9-5 14:48:19编辑过]

看了你的这个公式,我更感觉四舍五入很简单,但是,没有了四舍五入函数,总感觉有些别扭,可能对于一些初级用户更是如此!既然不麻烦,尽量还是增加上去直观一些吧!


 回到顶部