Format 0,0#### - не работает

Обсуждение Stimulsoft Reports.NET
Ответить
_Андрей_
Сообщения: 27
Зарегистрирован: 17 апр 2017, 13:12

Format 0,0#### - не работает

Сообщение _Андрей_ »

Из БД приходит строка в DataBand 0,54500
А в отчёте нужно её отобразить как 0,545

Должен работать метод
{Format("{0:0,0####}", Retail_Make_ver_9.Postuplenie_vsego_zak)}

Но отображает всё равно как 0,54500
В чём может быть проблема ?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Format 0,0#### - не работает

Сообщение HighAley »

Здравствуйте, Андрей.

Проблема в том, что строку надо преобразовать с число.
Попробуйте явно преобразовать тип.

Спасибо.
_Андрей_
Сообщения: 27
Зарегистрирован: 17 апр 2017, 13:12

Re: Format 0,0#### - не работает

Сообщение _Андрей_ »

как показали тесты проблема в том, что на вход нужно дать Decimal с разделителем {. точка},
а если даёшь Decimal с разделителем {,}, то ни какой реакции.

{System.Convert.ToDecimal("25,54800")} - 25,54800 - Decimal
Результат: 25,54800 - 25,54800 - Decimal

{System.Convert.ToDecimal(25.54800)} - 25.54800 - Decimal
Результат: 25,548 - 25.54800 - Decimal

При этом я смотрю что метод Replace(",", ".") не поддерживается

Как нам получить нужный формат если на входе строка "25,54800" , а нужно вывести как 25,548 ???

И ещё вопрос, у вас же там есть доступ к редактору кода, но как в него попасть это загадка!
Как мне открыть редактор кода для страницы ? И Можно ли в нём свою обработку добавлять ?


HighAley писал(а):Здравствуйте, Андрей.

Проблема в том, что строку надо преобразовать с число.
Попробуйте явно преобразовать тип.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Format 0,0#### - не работает

Сообщение Леонид »

День добрый!

Код: Выделить всё

      string dbString = "0,54500";
      decimal x = System.Convert.ToDecimal(dbString); // 0.54500M
      string s1 = x.ToString("0.000"); // 0,545 <-- то что вам нужно
      string s2 = x.ToString("0.000").Replace(",", "."); // 0.545 // <-- то вам нужно?

      string s3 = string.Format("{0:0,0####}", x); // "000 001" <-- вот это ваша строка, здесь вообще ерунда написана
При этом я смотрю что метод Replace(",", ".") не поддерживается
Поддерживается, т.к. стандартный функционал C#, и соответственно он применим к любой строке.
И ещё вопрос, у вас же там есть доступ к редактору кода, но как в него попасть это загадка!
Как мне открыть редактор кода для страницы ? И Можно ли в нём свою обработку добавлять ?
Вложения
Clipboard02.png
Clipboard02.png (78.07 КБ) 3759 просмотров
Clipboard01.png
Clipboard01.png (188.92 КБ) 3759 просмотров
_Андрей_
Сообщения: 27
Зарегистрирован: 17 апр 2017, 13:12

Re: Format 0,0#### - не работает

Сообщение _Андрей_ »

Леонид спасибо за ваш ответ, он помог разобраться.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Format 0,0#### - не работает

Сообщение HighAley »

Здравствуйте, Андрей.

С вашей проблемой всё намного проще.
Две операции с числами производятся в текущей культуре.
Культура берётся из настроек системы или её можно задать в свойствах отчёта.

Вы не привели пример использования метода Replace(). Он работает на наших примерах без проблем.

Посмотрите приложенный отчёт и попробуйте в нём изменить культуру на "ru-RU" и "en-US".

Спасибо.
Вложения
ToDecimal.mrt
(7.85 КБ) 356 скачиваний
Ответить