使用VBA和Excel函数对数是不同的
我试图得到一个数字的日志,但它看起来像工作表函数给出了一个答案,另一个VBA。
在VB中,使用Log(Range("A2"))
,其中A2是7,我得到1.94591014905531
,这是正确的答案。 但是,如果在工作表中,我使用=Log(A2,10)
或=Log10(a2)
,我得到0.84509804
。 这里发生了什么?
VBA的Log
function是自然的日志。 如果你想login基地十,你将不得不使用对数标识转换基地。 像这样: Log(x)/Log(10)
。
Function roundit1(nn As Variant, sd As Variant) nn = Val(nn) If Not (nn = 0) Then xx = (1 + Int(Log(Abs(nn)) / Log(10))) Else xx = 0 End If ' significant digits roundit = sd - xx If roundit < 0 Then roundit = 0 roundit1 = Round(nn, roundit) End Function