Округление до большего целого
От: Аноним  
Дата: 18.01.12 15:05
Оценка:
Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?

decimal val = 12345.2839M;

if ( Math.Round(val) == val )
{
  return Math.Round(val)
}

return Math.Round(val) + 1;
Re: Округление до большего целого
От: Аноним  
Дата: 18.01.12 15:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?


А>
А>decimal val = 12345.2839M;

А>if ( Math.Round(val) == val )
А>{
А>  return Math.Round(val)
А>}

А>return Math.Round(val) + 1;
А>

Я думаю не правильно.(если я правильно понял задачу), лучше вместо Round — Truncate использовать.
Re: Округление до большего целого
От: QrystaL Украина  
Дата: 18.01.12 15:25
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Нужно если число содержит дробную часть то округлить до большего целого


Math.Ceiling.
Re: Округление до большего целого
От: Spiceman  
Дата: 18.01.12 15:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?


Math.Ceiling
Re: Округление до большего целого
От: diez_p  
Дата: 18.01.12 16:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?

Вообще те, кто работают с округлением должны знать, что есть два типа округления: математическое и бухгалтерское в .NET на это есть следущий тип.
http://msdn.microsoft.com/ru-ru/library/system.midpointrounding.aspx
Re: Округление до большего целого
От: Mr.Delphist  
Дата: 23.01.12 08:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?


А>
А>decimal val = 12345.2839M;

А>if ( Math.Round(val) == val )
А>{
А>  return Math.Round(val)
А>}

А>return Math.Round(val) + 1;
А>


Как уже назвали среди прошлых ответов, это достигается Math.Ceiling. В дремучие годы этого добивались как Round(x+0.5).
А код в оригинальном топике — потенциально опасный. Равенство дробных чисел — в общем случае недостижимо.