Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:强烈建议能实现严格的“四舍五入”

1楼
shixia 发表于:2009/7/30 15:16:00
老大,狐表的四舍五入,其实是“四舍六入五成双”,如果要严格的“四舍五入”则要多写很多代码。实际上我们在工作中是执行严格的“四舍五入”。狐表这样的处理给我们带来很多不方便,比如,我写的程序里有数据的动态分摊,其中涉及的数据量非常大,没有使用严格“四舍五入”代码后出现的结果是:分摊前的数据和分摊后数据和有时不等,差额为1,但是又不可能处处插入你提供的严格“四舍五入”代码,这给我们造成很大的麻烦。我建议狐爸还是按照人们习惯的要求,在程序里把“四舍六入五成双”改成严格的“四舍五入”
2楼
狐狸爸爸 发表于:2009/7/30 15:18:00

如果你要严格地四舍五入,可以参考下面的代码:


Dim Digits As Integer = 2 '要保留的小数位数,根据需要修改
Dim
Value As Double = 1.245 '要进行四舍五入的小数值
Value = Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
Output.Show(Value)
'显示四舍五入后的值

3楼
cpayinyuan 发表于:2009/7/30 15:23:00
    已经提了N*N遍了,提供一个标准的四舍五入函数,但贺老师总认为不重要,我都不想再说了!在实际工作中究竟是标准四舍五入用得多还是四舍六入五成双用得多,傻子都清楚.本来一个函数都能解决的问题,非要让大家每次都写一行长长的代码,实在让我没脾气!
    如果VB中没有标准的四舍五入,强烈建议贺老师自己写一个,虽然简单,但使用频率非常高,希望这次贺老师不要嫌这件事太小不值得动手!
4楼
狐狸爸爸 发表于:2009/7/30 15:28:00
这样的东东,多简单啊:


Math.Floor(x* 10 ^ y + 0.5) / 10 ^ y


x数值,y小数位数。
5楼
shixia 发表于:2009/7/30 15:50:00

你说的没错,但是在长长的代码中,不断地去插入代码,还要留心代码中数据引用关系,弄不好就出错,为什么就不能改进一下,让我们少死一些脑细胞呢,还是请狐爸体谅我们的难处,把主要精力放在主要的代码上,代码太长了,出错都不好检查。

6楼
czy 发表于:2009/7/30 16:32:00
如果觉得需要。
可以将老六的代码集成到Code中,用时插入即可。
可以将老六的代码自定义成一个函数,用时调用即可。
7楼
shixia 发表于:2009/7/30 17:38:00
这么简单的事,老六就是不解决,固执啊图片点击可在新窗口打开查看
8楼
狐狸爸爸 发表于:2009/7/30 17:47:00
绝对不是固执,是没有办法,math类的函数是.net内置的,我是没有办法修改和加入的。

如果另外来一个的话,就是:

常规的:
Math.Round


四舍五入的:
Roun2


同一个用途的函数,位于不同的空间,不伦不类,又不是什么特别重要的东西,值得这样做。
[此贴子已经被作者于2009-7-30 17:47:38编辑过]
9楼
wcs 发表于:2009/7/30 18:09:00

四舍五入非常重要的!

每天与数据打交道,这个尾巴是很需要解决干净!

数字工作很纯粹的,不能差一分钱的。

10楼
cpayinyuan 发表于:2009/7/30 19:30:00
以下是引用狐狸爸爸在2009-7-30 17:47:00的发言:
如果另外来一个的话,就是:

常规的:
Math.Round

四舍五入的:
Roun2

同一个用途的函数,位于不同的空间,不伦不类,又不是什么特别重要的东西,值得这样做。

    贺老师,你这样做完全可行,也很容易实现!
    查查以前的贴子,您就会看到已经有多少人提这个问题了,为什么这么多人提,就说明大家需要!既然大家需要,工作量又很小很容易实现,管它在不在一个空间,这不是大家最在意的,只要实用就行了!您为什么不为大家提供方便呢?
    如果你不信,可以这样做一个试试(反正代码很简单,不会耗费多少精力),到时候你就会知道这个你认为不重要的东东的使用率会有多高了!

[此贴子已经被作者于2009-7-30 19:31:56编辑过]
共12 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .05859 s, 2 queries.