Функция Round

Обсуждение Stimulsoft Reports.Net
Ответить
IVC
Сообщения: 37
Зарегистрирован: 09 дек 2011, 03:11

Функция Round

Сообщение IVC » 29 май 2013, 08:29

Функция Math.Round() округляет 5 до четного, т.е. Round(20.5) = 20, Round(21.5) = 22. Есть ли параметр типа "AwayFromZero", чтобы округление 5 происходило в большую сторону?
HighAley
Сообщения: 1979
Зарегистрирован: 08 июн 2011, 07:36

Re: Функция Round

Сообщение HighAley » 30 май 2013, 08:28

Здравствуйте.
IVC писал(а):Функция Math.Round() округляет 5 до четного, т.е. Round(20.5) = 20, Round(21.5) = 22. Есть ли параметр типа "AwayFromZero", чтобы округление 5 происходило в большую сторону?
В отчётах может быть использован любой C# код. В том чисте и перегрузки метода Round() c MidpointRounding.

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

Round(20.5, MidpointRounding.AwayFromZero) = 21, Round(21.5, MidpointRounding.AwayFromZero) = 22
Спасибо.
IVC
Сообщения: 37
Зарегистрирован: 09 дек 2011, 03:11

Re: Функция Round

Сообщение IVC » 30 май 2013, 14:48

Спасибо, затупили сначала, потом разобрались :)
HighAley
Сообщения: 1979
Зарегистрирован: 08 июн 2011, 07:36

Re: Функция Round

Сообщение HighAley » 31 май 2013, 11:41

Здравствуйте.

Обращайтесь ещё, если возникнут вопросы.

Спасибо.
Аватара пользователя
Odon01
Сообщения: 28
Зарегистрирован: 19 янв 2015, 07:15

Re: Функция Round

Сообщение Odon01 » 13 янв 2016, 07:56

Добрый день.
Можно ли будет параметр MidpointRounding.AwayFromZero использовать по умолчанию в вашей ф-ии Round. Т.е. чтобы пользователи не писали {Round(20.5,MidpointRounding.AwayFromZero)} а сразу {Round(20.5)}.
Математически это было бы более правильно, чем то, что сейчас используется по умолчанию.

Или может добавить поведение ф-ии по умолчанию отдельной настройкой?

Клиенты наделали очень много отчетов с этой ф-ией. И все ожидали что округление будет работать математически точно. Было бы наверное очень хорошо сделать настройку IsAwayFromZeroByDefault для отчета. И по реализации это было бы несложно. По умолчанию пусть будет выключено.

Спасибо.
HighAley
Сообщения: 1979
Зарегистрирован: 08 июн 2011, 07:36

Re: Функция Round

Сообщение HighAley » 14 янв 2016, 09:45

Здравствуйте.

Изменить работу функции Round() по умолчанию мы к сожалению не можем. Но мы добавили опцию для вас.

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

StiOptions.Engine.MidpointRounding = MidpointRounding.AwayFromZero;
Эта опция будет доступна в нашем сегодняшнем билде.

Спасибо.
Аватара пользователя
Odon01
Сообщения: 28
Зарегистрирован: 19 янв 2015, 07:15

Re: Функция Round

Сообщение Odon01 » 14 янв 2016, 12:30

Здравствуйте.
Спасибо огромное.
Andrew
Сообщения: 571
Зарегистрирован: 09 июн 2006, 08:22

Re: Функция Round

Сообщение Andrew » 14 янв 2016, 13:58

Здравствуйте,

Всегда рады помочь).

Хорошего дня!
Ответить