首页 相关文章 你真正理解AllowUnroundedFloatingPointOperations选项的含义吗

你真正理解AllowUnroundedFloatingPointOperations选项的含义吗

来自微软的资料鼓吹:高级优化对话框中的所有编译选项都被认为是不稳定的,它们可能导致不正确的结果,甚至程序崩溃。对于其中的大多数,这种说法是正确的,但是经常有一个叫做"AllowUnroundedFloatingPointOperations"的选项能够给予正确的结果,防止应用程序产生bug。考虑下面的代码段:
  
  DimxAsDouble,yAsDouble,iAsInteger
  
  x=10^18
  
  y=x 1'thiscan'tbeexpressedwith64bits
  
  MsgBox(y=x)'显示"True"(不正确的结果)
  
  
  严格地说,由于X和Y变量不包含相同的数值,MsgBox将显示False。可问题是,由于数值1E18与1E18+1都以相同的64位浮点Double类型来表示,它们最终包含了几乎相同的数值,最后的MsgBox结果将是True。
  
  如果打开了"AllowUnroundedFloatingPointOperations"编译选项,VB就能重用已在数学协处理器堆栈中的数值,而不是内存中的数值(比如:变量)。因为F...[ 查看全文 ]

2016-02-19 标签:

你真正理解AllowUnroundedFloatingPointOperations选项的含义吗的相关文章

手机页面
收藏网站 回到头部