• 您的位置我爱Aspx >> VB.Net >> VB与Excel在乘幂运算时的结果差异及其不合理性
  • VB与Excel在乘幂运算时的结果差异及其不合理性

  • 作者:aspxer  来源:internet  日期:2007-5-20 13:58:48  关键字:
  • VB与Excel在乘幂运算时的结果差异及其不合理性

    大学环境科学系 隋祥

    引言

    表达式解析是编程工具与电子表格等软件最基本的功能之一,不同的软件在解析表达式时都遵循一定的运算规则,在不同软件中,这些运算规则略有差异,导致计算结果也不同。笔者在实践中发现,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在处理乘方运算时,其结合顺序没有一个令人信服的依据,并存在不合理性。

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:VB.net基础:如何获得并显示网上图片
    下一篇:用VB编写一个屏幕颜色拾取器
  • 相关文章