From e8cc8884f0c5bf24ebbbf510b7405cb56955a3c4 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Mon, 26 Oct 2026 21:10:32 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE=D0=BB?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Commons/ValueFormatter.cs | 9 +++++---- tests/formatting.os | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/OneScript.Core/Commons/ValueFormatter.cs b/src/OneScript.Core/Commons/ValueFormatter.cs index 638c9e32e..718e41291 100644 --- a/src/OneScript.Core/Commons/ValueFormatter.cs +++ b/src/OneScript.Core/Commons/ValueFormatter.cs @@ -104,14 +104,15 @@ public static string FormatNumber(decimal num, FormatParametersList formatParame string param; string zeroAppearance; - if (formatParameters.HasParam(NUM_ZERO_APPEARANCE, out param)) + if (formatParameters.HasParam(NUM_ZERO_APPEARANCE, out zeroAppearance)) { - zeroAppearance = (param == "") ? "0" : param; + if (zeroAppearance == "") + zeroAppearance = null; } else zeroAppearance = ""; - if (num == 0) + if (num == 0 && zeroAppearance is not null) { return zeroAppearance; } @@ -174,7 +175,7 @@ public static string FormatNumber(decimal num, FormatParametersList formatParame { bool overflov = !ApplyNumericSizeRestrictions(ref num, totalDigits, fractionDigits); ; - if (num == 0) + if (num == 0 && zeroAppearance is not null) return zeroAppearance; if (totalDigits == 0) diff --git a/tests/formatting.os b/tests/formatting.os index 62744d923..571306640 100644 --- a/tests/formatting.os +++ b/tests/formatting.os @@ -93,6 +93,7 @@ юТест.ПроверитьРавенство("0.12346", Формат(Дробь, "ЧЦ=0; ЧДЦ=5; L=en_US")); юТест.ПроверитьРавенство("", Формат(Дробь, "ЧЦ=5; ЧДЦ=0; L=en_US")); юТест.ПроверитьРавенство("Z", Формат(Дробь, "ЧЦ=5; ЧДЦ=0; ЧН=Z; L=en_US")); + юТест.ПроверитьРавенство("00,000", Формат(Дробь, "ЧЦ=5; ЧДЦ=0; ЧН=; ЧВН=; L=en_US")); Дробь = 3.123456789; юТест.ПроверитьРавенство("3.123457", Формат(Дробь, "ЧДЦ=6; L=en_US")); @@ -186,6 +187,7 @@ юТест.ПроверитьРавенство("НОЛЬ", Формат(0, "ЧН='НОЛЬ';")); юТест.ПроверитьРавенство("0", Формат(0, "ЧН='';")); юТест.ПроверитьРавенство(" ", Формат(0, "ЧН=' ';")); + юТест.ПроверитьРавенство("00,000.00", Формат(0, "ЧЦ=7; ЧН=; ЧДЦ=2; ЧВН=; L=en_US")); КонецПроцедуры