Vbscript Asp经典格式编号不显示最终零

Vbscript Asp经典格式编号不显示最终零,vbscript,asp-classic,Vbscript,Asp Classic,这个函数对我来说一直都是正确的,即使是.00也能显示小数。现在它没有显示最后的零 例如: <%= FormatNumber(1000,2) %> 还我1000元 <%= FormatNumber(1000.99999,2) %> 返回我1000.99999 有人知道问题出在哪里吗?我将继续添加这一点作为答案,因为我刚刚尝试过,得到了确切描述的症状 在我看来,您的代码中有一个名为FormatNumber的自定义函数。如果函数定义多次,VBScript将使用本地定

这个函数对我来说一直都是正确的,即使是.00也能显示小数。现在它没有显示最后的零

例如:

<%= FormatNumber(1000,2) %>

还我1000元

<%= FormatNumber(1000.99999,2) %>

返回我1000.99999

有人知道问题出在哪里吗?

我将继续添加这一点作为答案,因为我刚刚尝试过,得到了确切描述的症状

在我看来,您的代码中有一个名为
FormatNumber
的自定义函数。如果函数定义多次,VBScript将使用本地定义最多的版本。换句话说,如果您编写一个函数并将其命名为与内置函数相同的名称,则将使用您的版本,而不是内置版本

对于内置的
FormatNumber
函数,除第一个参数外,所有参数都是可选的,因此
FormatNumber(1000)
可以正常工作,不会导致错误。但是,如果您自己编写一个函数,则不能执行可选参数,因此如果该函数需要两个参数,而您仅使用一个参数调用它,则会出现语法错误。这正是你描述看到的行为

检查页面和所有包含文件(如果有)。我跟你赌美元买油炸圈饼,你会发现像这样的东西:

Function FormatNumber(inputNumber,ignoredDecimalDigitsParam)
'... possibly a bunch of code, all boiling down to:
    FormatNumber = inputNumber
End Function

如果输入FormatNumber(1000)会得到什么?“参数数量错误或属性分配无效”对不起,正确的语法应该是response.write(FormatNumber(1000))或在开始标记处带有“=”信号。我使用response.write,但结果是一样的:/n是否有人在代码中添加了自定义FormatNumber函数?这是我能想到的唯一一个会导致这些结果的场景。就是这样!页面上有一个同名的自定义函数,我没有意识到。谢谢!