Почему FormatNumber () не отображает начальный ноль для дроби, какое бы значение не было передано для IncludeLeadingDigit? - PullRequest
0 голосов
/ 05 июля 2019

Следующий код:

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(Expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])

IncludeLeadingDigit

Необязательно.Константа с тремя состояниями, которая указывает, отображается ли начальный ноль для дробных значений.Значения см. В разделе «Настройки».

Кстати, здесь приведены региональные настройки моего компьютера (у меня должен быть начальный ноль !!!) в 64-разрядной версии Windows 10 Pro (французский):

My regional formats on a Windows 10 Pro 64-bit (French)

1 Ответ

1 голос
/ 11 июля 2019

По запросу, мой комментарий как ответ:

Вам необходимо определить эти константы в скрипте:

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

Как совет: при запуске скриптов с Option Explicit, ошибкио неопределенных переменных покажет.

...