设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: wang1950317
打印 上一主题 下一主题

[基础应用] 既要四舍六入又要保留有效数字位数怎样设置

[复制链接]
11#
发表于 2004-10-20 00:14:00 | 只看该作者
说明:其中X为实数,N为你所想取的有效数字位数如:TST(123.345,4)表示123.456取四位有效数字
12#
发表于 2004-10-20 00:18:00 | 只看该作者
真是见鬼了,进了EXCEL,呵呵

点击这里给我发消息

13#
 楼主| 发表于 2004-10-20 00:49:00 | 只看该作者
谢谢zipgirl的热心指点,不过我时菜鸟,对编程不懂,不过我可以照葫芦画瓢先在Access中克隆一下,如有问题,在向您请教。谢谢! 看来office-cn 高手如云哪!
14#
发表于 2004-10-20 19:35:00 | 只看该作者
晚上想了一下,写了个虽然还是繁琐但条理比较清楚的函数,我试了一下,我试过的数据暂未出现错误,不过那个数要为字符型(string,可看后面例子),即使你输入的数字是中文也可以实现本效果,望能给你帮上忙。function tst(num as string,n as integer) as stringdim x,y,z,numlngdim expnum  as stringdim i as longdim m() as byteif n<1 thenmsgbox "啥也不留,计算结果给空气啊?",vbokonly,"别耍我了,GM!"exit functionend ifx=val(num)tst=iif(x>=0,"+","-")y=abs(x)if x=0 then tst=0exit functionend ifif y>=1 thenm=strconv(z,vbfromunicode)for i=1 to ubound(m)if m(i)=46 thenexit forend ifnextexpnum=iif(i>1,"E+" & trim(str(i-1)),"")z=y/(10^(i-1))elsem=strconv("0" & z,vbfromunicode)for i=0 to uboun(m)if m(i)>=49 thenexpnum="E-" & trim(str(i-1))z=y*10^(i-1)exit forend ifnextend ifnumlng=len(trim(str(z)))-1if numlng=1 thentst=tst & trim(str(z)) & iif(n>1,".","") & string(n-1,"0")exit functionend ifz=int((z*(10^(n-1))+0.5))/10^(n-1)if n<=numlng thentst=tst & trim(str(z)) & expnumexit functionelsetst=tst & trim(str(z)) & string(n-numlng,"0" & expnumend ifend function'tst("-0.0002",4)的结果为2.000E-4,数字最好加上引号'tst("-123.456789。中国",5)的结果为-123.46E+2'如果对0的结果要求为0.000之类,可删除‘if x=0 then ’tst=0‘exit function
15#
发表于 2004-10-20 19:40:00 | 只看该作者
对不起,没看到四舍六入(这东东用来干啥?我没见过耶),哈哈,你可修改一下,很简单的[em07]
16#
发表于 2004-10-22 04:38:00 | 只看该作者
round不行吗?
17#
发表于 2004-10-27 00:02:00 | 只看该作者
round就是四舍六入的,不过的先判断一下范围,

点击这里给我发消息

18#
 楼主| 发表于 2004-10-28 01:02:00 | 只看该作者
zipgirl老师:谢谢您的帖子。我对编程是菜鸟,将您的东东拿来捣鼓了半天,不知从何处下手。烦您指点一下我怎样在Excel中使用您的程序?此程序在Access中是否也可用?谢谢您的热心!

点击这里给我发消息

19#
 楼主| 发表于 2004-10-28 01:14:00 | 只看该作者
这个东西是从事物理或化学检测的工作人员日常对检测结果进行数据处理天天要打交道的。也是国家标准检验方法中所要求,一般国家标准检验方法最后都有这样的字样:测定结果保留3位有效数字(多数保留3位,也有要求保留2位等,数据需按有效数字位数进行四舍六入)。原先使用计算器或电脑计算后再人工按这个要求处理。现在我是想在Excel或Access中设计成公式或模块,进行自动计算。请各位大师帮忙!不胜感谢!!

点击这里给我发消息

20#
 楼主| 发表于 2004-10-28 01:20:00 | 只看该作者
Round在Excel中仍然是四舍五入。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-21 21:22 , Processed in 0.081571 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表