Math.Round vs String.Format
От: Аноним  
Дата: 12.10.04 07:21
Оценка:
Насколько я понимаю, создатели .NET решили сделать одолжение разработчикам банковских систем "...This kind of rounding is sometimes called rounding to nearest, or banker's rounding...", но что делать разработчикам других систем, где требуется обычный математический Round и не производятся каскадные округления, с чем собственно этот метод (IEEE Standard 754, section 4) и борется???
Более того, все форматтеры, например String.Format("{0:N}",1.445) использует обычное математическое округление, т.е. указанный пример вернет 1.45, хотя Math.Round(1.445,2) вернет 1.44.
Т.е. на самом деле в дебрях .NET нормальное округление где-то есть, но почему-то его никому наружу не показывают.
Естественно можно написать свою функцию, но ладно, если бы она была в одну строчку, Math.Floor(val,0.5), но ведь число 0,5 еще надо получить всякими возведениями в степень, т.е. как минимум не тривиально.
Что мешало создателям сделать 2 открытых функции???



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Math.Round vs String.Format
От: flashfm  
Дата: 03.02.06 14:04
Оценка:
Здравствуйте, Enforcer, Вы писали:

E>... Math.Round(1.445,2) вернет 1.44.


E>
данное сообщение получено с www.gotdotnet.ru

E>ссылка на оригинальное сообщение


зато Math.Round(1.445, 2, MidpointRounding.AwayFromZero) вернет 1.45
we | never | gonna | stop
Re[2]: Math.Round vs String.Format
От: slydiman Россия http://slydiman.narod.ru
Дата: 16.02.06 17:39
Оценка:
> зато Math.Round(1.445, 2, MidpointRounding.AwayFromZero) вернет 1.45

А как быть в .NET 1.x или .NET CF ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.