Excel日志等效于JS Math.log()

时间:2015-06-17 13:41:37

标签: javascript excel math

在我的javascript代码中,我有以下

SELECT [USER].[USER_ID] [UserId]    
       ,[FIRST_NM] AS FirstName  
      ,[LST_NM] AS LastName        
        , (STUFF((SELECT CAST(', ' + [Role].[ROLE_NM] AS VARCHAR(MAX)) 

FROM [dbo].[USER] [User] (NOLOCK)       
INNER JOIN dbo.USER_ROLE [USER_ROLE] on [User].USER_ID=[USER_ROLE].USER_ID        
INNER JOIN dbo.ROLE [Role] on [Role].ROLE_ID=[USER_ROLE].ROLE_ID     
WHERE [USER].[SSO_ID] = 'a40ecdebfef84f099f74c4d9cf537929'  
FOR XML PATH ('')), 1, 2, '')) AS Roles

在我的excel公式中,我尝试用

复制它
Math.log(20) = 2.995732273553991

任何人都知道为什么我会得到两个不同的结果?我希望我的excel与我的js匹配。

2 个答案:

答案 0 :(得分:3)

Math.log(20)是基数e,而LOG(20)是基数10。

你不是在寻找LOG(20),而是可能是LN(20)(基础e)。

enter image description here

MDN(适用于javascript):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log

LN(for excel):https://support.office.com/en-us/article/LN-function-81fe1ed7-dac9-4acd-ba1d-07a142c6118f

如果未设置(默认值为10),您正在使用的LOG功能会自动将第二个参数设置为10,如下所示:

enter image description here

从这里开始:https://support.office.com/en-nz/article/LOG-function-4e82f196-1ca9-4747-8fb0-6c4a3abb3280

答案 1 :(得分:0)

以防万一有兴趣朝另一个方向前进: 要获得Excel的LOG(x),您可以这样做:

Math.log(x) / Math.log(10);

或者,提高效率:

Math.log(x) / Math.LN10;