Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?
decimal val = 12345.2839M;
if ( Math.Round(val) == val )
{
return Math.Round(val)
}
return Math.Round(val) + 1;
Здравствуйте, Аноним, Вы писали:
А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?
А>А>decimal val = 12345.2839M;
А>if ( Math.Round(val) == val )
А>{
А> return Math.Round(val)
А>}
А>return Math.Round(val) + 1;
А>
Я думаю не правильно.(если я правильно понял задачу), лучше вместо Round — Truncate использовать.
Здравствуйте, Аноним, Вы писали:
А>Нужно если число содержит дробную часть то округлить до большего целого
Math.Ceiling.
Здравствуйте, Аноним, Вы писали:
А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?
Math.Ceiling
Здравствуйте, Аноним, Вы писали:
А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?
Вообще те, кто работают с округлением должны знать, что есть два типа округления: математическое и бухгалтерское в .NET на это есть следущий тип.
http://msdn.microsoft.com/ru-ru/library/system.midpointrounding.aspx
Здравствуйте, Аноним, Вы писали:
А>Нужно если число содержит дробную часть то округлить до большего целого, насколько данный код является компактным/правильным. Как его можно улучшить ?
А>А>decimal val = 12345.2839M;
А>if ( Math.Round(val) == val )
А>{
А> return Math.Round(val)
А>}
А>return Math.Round(val) + 1;
А>
Как уже назвали среди прошлых ответов, это достигается Math.Ceiling. В дремучие годы этого добивались как Round(x+0.5).
А код в оригинальном топике — потенциально опасный. Равенство дробных чисел — в общем случае недостижимо.