分享
 
 
 

VB与Excel在乘幂运算时的结果差异及其不合理性

王朝vb·作者佚名  2006-01-30
窄屏简体版  字體: |||超大  

东北林业大学环境科学系 隋祥 引言 表达式解析是编程工具与电子表格等软件最基本的功能之一,不同的软件在解析表达式时都遵循一定的运算规则,在不同软件中,这些运算规则略有差异,导致计算结果也不同。笔者在实践中发现,VB与Excel在处理“连续乘幂”这一常见运算时,所遵循的法则有着较大的出入,而且都存在着不合理的因素。本文试图通过论述得到一种更为合理的运算模式,并为编写表达式解析类过程提供指导。

问题分析 下表列出了VB6.0与Excel2003在处理同一个关于乘方运算的表达式时所得到的结果。

表1 VB6.0与Excel2003执行乘方运算的结果差异

表达式

VB计算结果

Excel计算结果

2^-2^-2

.840896415253715

16

-2 ^ 2

-4

4

-2^-2^-2

-.840896415253715

16

2 ^ -3 ^ 4 ^ 7

0

5.16988E-26

本人经过分析,认为引起结果差异的主要因素是单目运算符“-”的运算级和连续乘幂的运算顺序。详细分析如下:

1.对于表达式2^-2^-2,VB的计算步骤是2^(-2^-2)= .840896415253715,这时它的计算顺序是从右到左,而Excel则严格按照从左到右的结合顺序。如果我们把2^-2^-2理解为

,那么,显然VB的计算结果是合理的,但是不是VB在处理连续乘方运算时都是从右到左的呢?答案是否定的。在计算2^3^4时,VB得到的结果是4096而不是2.41785163922926E+24,这说明此时VB并没有把2^3^4理解为
而是理解为
,是从左到右的结合顺序。显然,VB在处理乘方运算时,其结合顺序没有一个令人信服的依据,并存在不合理性。

2.对于表达式-2^2,VB的计算过程相当于-(2^2)=-4,按照Microsoft MSDN 6.0 简体中文版VB帮助系统中的《运算符优先顺序》一文中的描述,指数运算符(^)高于负数运算符(-)。这样看来VB按照这样的法则得到这样的结果是合理的。对于Excel,它的计算过程相当于(-2)^2,按照Excel 2003版帮助文档的叙述,符号(-)要高于乘幂(^)(注:两款软件运算符的中文名称略有差异),那么这样看来Excel的运算也是合理的。但是Excel将“-(负号)”的优先级放在“^”运算符之前的做法存在着一定问题。例如对于表达式4-2^2、4--2^2、4---2^2、4-……-(n个-)2^2的结果都是0,这是按照上述法则令人无法顺利解释的。

3.由于上述两条原因才导致了对于表达式-2^-2^-2的计算结果的不同。

4. 对于表达式2 ^ -3 ^ 4 ^ 7,VB计算结果为0,这是无论如何也无法顺利解释的。关于此结果的来历还有待于进一步研究。

表达式解析法则建议 鉴于VB与Excel在解析表达式时对乘幂运算的结果差异及所存在的不合理性,建议在编写表达式解析过程时应当遵循如下原则:

1.建议将乘幂运算符“^”的优先级至于单目负数运算符“-”之前。

2.在连乘幂运算的结合顺序上应当统一,建议采用从左到右的结合方式。

欢迎大家批评指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有