Функция Round
Функция Round
Функция Math.Round() округляет 5 до четного, т.е. Round(20.5) = 20, Round(21.5) = 22. Есть ли параметр типа "AwayFromZero", чтобы округление 5 происходило в большую сторону?
Re: Функция Round
Здравствуйте.
Спасибо.
В отчётах может быть использован любой C# код. В том чисте и перегрузки метода Round() c MidpointRounding.IVC писал(а):Функция Math.Round() округляет 5 до четного, т.е. Round(20.5) = 20, Round(21.5) = 22. Есть ли параметр типа "AwayFromZero", чтобы округление 5 происходило в большую сторону?
Код: Выделить всё
Round(20.5, MidpointRounding.AwayFromZero) = 21, Round(21.5, MidpointRounding.AwayFromZero) = 22
Re: Функция Round
Спасибо, затупили сначала, потом разобрались ![Улыбается :)](./images/smilies/icon_e_smile.gif)
![Улыбается :)](./images/smilies/icon_e_smile.gif)
Re: Функция Round
Здравствуйте.
Обращайтесь ещё, если возникнут вопросы.
Спасибо.
Обращайтесь ещё, если возникнут вопросы.
Спасибо.
Re: Функция Round
Добрый день.
Можно ли будет параметр MidpointRounding.AwayFromZero использовать по умолчанию в вашей ф-ии Round. Т.е. чтобы пользователи не писали {Round(20.5,MidpointRounding.AwayFromZero)} а сразу {Round(20.5)}.
Математически это было бы более правильно, чем то, что сейчас используется по умолчанию.
Или может добавить поведение ф-ии по умолчанию отдельной настройкой?
Клиенты наделали очень много отчетов с этой ф-ией. И все ожидали что округление будет работать математически точно. Было бы наверное очень хорошо сделать настройку IsAwayFromZeroByDefault для отчета. И по реализации это было бы несложно. По умолчанию пусть будет выключено.
Спасибо.
Можно ли будет параметр MidpointRounding.AwayFromZero использовать по умолчанию в вашей ф-ии Round. Т.е. чтобы пользователи не писали {Round(20.5,MidpointRounding.AwayFromZero)} а сразу {Round(20.5)}.
Математически это было бы более правильно, чем то, что сейчас используется по умолчанию.
Или может добавить поведение ф-ии по умолчанию отдельной настройкой?
Клиенты наделали очень много отчетов с этой ф-ией. И все ожидали что округление будет работать математически точно. Было бы наверное очень хорошо сделать настройку IsAwayFromZeroByDefault для отчета. И по реализации это было бы несложно. По умолчанию пусть будет выключено.
Спасибо.
Re: Функция Round
Здравствуйте.
Изменить работу функции Round() по умолчанию мы к сожалению не можем. Но мы добавили опцию для вас.
Эта опция будет доступна в нашем сегодняшнем билде.
Спасибо.
Изменить работу функции Round() по умолчанию мы к сожалению не можем. Но мы добавили опцию для вас.
Код: Выделить всё
StiOptions.Engine.MidpointRounding = MidpointRounding.AwayFromZero;
Спасибо.
Re: Функция Round
Здравствуйте.
Спасибо огромное.
Спасибо огромное.
Re: Функция Round
Здравствуйте,
Всегда рады помочь).
Хорошего дня!
Всегда рады помочь).
Хорошего дня!
Re: Функция Round
Добрый день.
Подскажите, пожалуйста.
Делаю следующий вызов, для дефолтного округления в сторону от нуля AwayFromZero
Но в результате всё равно {Round(20.275,2)}, например округляется как 20.27, а не как 20.28
Версия дизайнера 2019.1.1
Подскажите, пожалуйста.
Делаю следующий вызов, для дефолтного округления в сторону от нуля AwayFromZero
Код: Выделить всё
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using Stimulsoft.Controls;
using Stimulsoft.Base.Drawing;
using Stimulsoft.Report;
using Stimulsoft.Report.Dialogs;
using Stimulsoft.Report.Components;
namespace Reports
{
public class Repor_1 : Stimulsoft.Report.StiReport
{
public Report_1() {
this.InitializeComponent();
StiOptions.Engine.MidpointRounding = MidpointRounding.AwayFromZero;
}
#region StiReport Designer generated code - do not modify
#endregion StiReport Designer generated code - do not modify
}
}
Версия дизайнера 2019.1.1
Re: Функция Round
Здравствуйте,
Используйте следующее выражение:
{Round(20.275m,2)}
Спасибо.
Используйте следующее выражение:
{Round(20.275m,2)}
Спасибо.