Office中国论坛/Access中国论坛
标题:
提请黄寅秋大师帮忙解决有效数字问题!
[打印本页]
作者:
wang1950317
时间:
2004-10-24 18:28
标题:
提请黄寅秋大师帮忙解决有效数字问题!
黄寅秋大师:您好! 我的本栏话题"
既要四舍六入又要保留有效数字位数怎样设置
"贴出后,蒙各位老师热心帮忙,非常感激.但至今缺少一个比较完美的公式,
xulanghui大侠建议您来看看,特向您求助,如能垂顾,不胜感谢!
作者:
黄寅秋
时间:
2004-10-25 03:04
实在不敢当什么大师之类的名号。一个爱好者而已。
你的问题看过多遍了,但始终对具体的要求不太明了。
比如,如果得出的数值是一个一位或二位整数,是否还有三个“有效”数字的要求?是否一定要在小数点后加0?
所以,你最好搞一个模拟方案来,把可能遇到的各种情况一一列举,这样给人的印象会更直观。
另外,公式无法改变单元格的格式。你不能要求它做他做不到的事情。所以对于科学计数,如果一定要取其部分,则得出的结果将是文本格式。但那有什么意义呢?
[此贴子已经被作者于2004-10-25 6:29:23编辑过]
作者:
黄寅秋
时间:
2004-10-25 03:08
做了一个公式,但只能达到部分要求。请参考。
[attach]7331[/attach]
作者:
wang1950317
时间:
2004-10-26 17:26
黄大师:您好! 有关有效数字问题,如你检测得到的数据报告12,则表示个位2是不确定的(可能是整数,也可能为11.8 12.3经过数自修约得到的),报告为12.0则0是不确定的(可能为整数12.0,也可能为12.04 12.01等修约而来的),所以是有很大区别的.国家标准检验方法多数要求报告极为有效数字. 拜读了您的公式,有几点意见: 1 有关四舍六入而尾数为5时的集中情况
以保留3位有效数字为例) ①3.61500 修约后为 3.62 (5后为0,5前一位单数进位) ②3.62500 修约后为 3.62 (5后为0,5前一位双数舍去) ③3.625001 修约后为 3.63 (5后不全部为0 ,不管5前一位是单是双均进位) ④0.003615 修约后为0.00362 您的公式在. 第②③两种情况解决的很好.但第①种情况没能进位成3.62 第4种情况下只显示0.003(只有一位有效数字),而0.00362才是3位有效数字,3之前的0不是有效数字是定小数位数用的(如果是0.00300也是3位有效数字,3之后的0是有效数字)2 较大的数需用指数表示,才能表示出有效数字位数,如123000,保留3位有效数字为1.23X10^5(抱歉上标我不会打).好在我在工作中碰到的很少,公式中可以不要这一部分.至于正好是整数如12 0.12 不能显示成12.0 0.120 这种情况也很少见,故也可以不予考虑.另外有的大虾提供的公式,也有许多缺陷:1公式:=IF(IF(IF(MIDB(A1,2,1)=".","小数","整数")="整数","整数",IF(MIDB(A1,2,1)=".","小数","整数")&INT(A1))="小数0",ROUND(A1,3),ROUND(A1,2))2 公式:=IF(ABS(RIGHT(formatA,3))<2,LEFT(formatA,digit)*POWER(10,RIGHT(formatA,3)),LEFT(formatA,digit)& " × 10^" & VALUE(RIGHT(formatA,3)))烦请黄老师再费心!谢谢!
作者:
wang1950317
时间:
2004-10-26 17:43
另在Excel Home网站上
dongmu大师 提供的一个公式
=ROUND(A7,2)-IF(AND(ROUND(A7,2)>A7,TRUNC(A7*200)=A7*200,TRUNC(A7*100/2)=TRUNC(A7*100)/2),0.01)能较好解决5后面不全部为0的进位问题,如3.625001报留3位有效数字3.63.但遇到0.003256也不能正确显示.
作者:
juyouhuanghua
时间:
2004-10-27 01:19
条件过于苛刻了。EXCEL也不是万能的呀。其实做还是能做得出来的,只不过是众多条件的堆砌罢了,关键是耐心。建议你贴到EXCELHOME上去碰碰运气吧。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3