Vbscript 为什么';t FormatNumber()为分数显示前导零,为IncludeLeadingDigit传递的值是多少?

Vbscript 为什么';t FormatNumber()为分数显示前导零,为IncludeLeadingDigit传递的值是多少?,vbscript,number-formatting,Vbscript,Number Formatting,以下代码: WScript.Echo FormatNumber(0.123, 0) WScript.Echo FormatNumber(0.123, 1) WScript.Echo FormatNumber(0.123, 2) WScript.Echo FormatNumber(0.123, 0, TristateTrue) WScript.Echo FormatNumber(0.123, 1, TristateTrue) WScript.Echo FormatNumber(0.123, 2,

以下代码:

WScript.Echo FormatNumber(0.123, 0)
WScript.Echo FormatNumber(0.123, 1)
WScript.Echo FormatNumber(0.123, 2)
WScript.Echo FormatNumber(0.123, 0, TristateTrue)
WScript.Echo FormatNumber(0.123, 1, TristateTrue)
WScript.Echo FormatNumber(0.123, 2, TristateTrue)
WScript.Echo FormatNumber(0.123, 0, TristateFalse)
WScript.Echo FormatNumber(0.123, 1, TristateFalse)
WScript.Echo FormatNumber(0.123, 2, TristateFalse)
WScript.Echo FormatNumber(0.123, 0, TristateUseDefault)
WScript.Echo FormatNumber(0.123, 1, TristateUseDefault)
WScript.Echo FormatNumber(0.123, 2, TristateUseDefault)
产出如下:

0
0,1
0,12

,1
,12

,1
,12

,1
,12
谁能解释一下为什么传递
TristateTrue
TristateFalse
TristateUseDefault
没有区别

供参考:

FormatNumber(表达式[,NumDigitsAfterDecimal[,includeLadingDigit[,UseParensForNegativeEnumbers[,GroupDigits]])

INCLUDELEADIGDIIT

可选。三态常数,指示是否为分数值显示前导零。有关值,请参见“设置”部分

顺便说一句,这里是我的计算机在Windows 10 Pro 64位(法语)上的区域设置(我应该有前导零!!!):


根据要求,我的评论作为答复:

您需要在脚本中定义以下常量:

Const TristateUseDefault = -2
Const TristateTrue = -1
Const TristateFalse = 0

提示:通过使用
选项Explicit
启动脚本,将显示有关未定义变量的错误。

您是否正确声明了常量
Const-TristateUseDefault=-2:Const-TristateTrue=-1:Const-TristateFalse=0
OK,现在您已经得到了它!我确实申报了。。。但是在我的主脚本中,不是在我用来测试这个特性的脚本中。。。x-(太糟糕了,这些常量没有声明为或默认的vbXXX常量…这很奇怪,因为这些
Tristate
常量在FormatCurrency/FormatNumber/FormatPercent和OpenTextFile/OpenAsTextStream方法之间共享。@Theo你想建议一个答案,这样我就可以验证它了吗?谢谢。谢谢,我刚刚发布了答案。