在vb.net中,我们取对数可以用system.math.log函数,但他与VB6.0不同的是.net的求对数支持多态,及log(a)默认以e为底还有log(a,newBase),后者支持变换底数,如system.math.log(8,2) 是以2为底8的对数,但问题是有时我们在对a变量未知时,就有可能处理到a=0的情况,在VB.net中log(0) = "负无穷大" 解决的办法很简单, 如果你想log(0) = 0 (当然这里抛开数学意义来说,我主要是利用他说明问题,其实有时这里log(0) = 0是很有用的,比如解决图表差异太大时画出来的图那些小的数不明显.可以用求对数解决,但有些数会是0……)精练的用一句IIF函数处理 iif(表达式,true,false) 如:
V=iif(a=0,0,system.math.log(a)) 就可以解决了
但是碰巧今天回到VB6.0处理以前的一个项目,碰到一个问题就是用了 V=log(a)出现无效的函数处理过程的错误提示,原因是a=0,有什么困难的,那末我又可以用V=iif(a=0,0,log(a)) 让a=0 给我返回0,这样就避免错误了


最后补充一点,在vb6.0要换底数可以用 log(Y)/log(X) 处理以X为底Y的对数,因为这时log不支持多态
证明:
