Reply to Re: T-SQL ROUND(decimal, int) vs C# Round(Decimal, Int32)

Your name:

Reply:


Posted by Hugo Kornelis on 01/31/06 00:23

On 30 Jan 2006 08:42:43 -0800, Matt wrote:

>Anybody noticed that SQL Server rounds up if the value is half way
>between two rounded values, but C#'s Decimal.Round(Decimal,Int32)
>rounds to nearest even number?
>
>>From MSDN: "When d is exactly halfway between two rounded values, the
>result is the rounded value that has an even digit in the far right
>decimal position. For example, when rounded to two decimals, the value
>2.345 becomes 2.34 and the value 2.355 becomes 2.36. This process is
>known as rounding toward even, or rounding to nearest."
>
>I perform the same calculation sometimes on the web server in C# and
>sometimes at the database in T-SQL, but want to get the same result
>from both calculations. Could anybody offer any strategies for dealing
>with this?

Hi Matt,

This method of rounding is called "bankers rounding". Here's a link to a
previous discussion about it, including some techniques to do this in
SQL Server (warning - long URL, might wrap)

http://groups.google.com/group/microsoft.public.sqlserver.programming/browse_frm/thread/b47c6ab25aacb7da/85e9e40e0a7f6f32?lnk=st&q=bankers+rounding+sql+server&rnum=1&hl=en#85e9e40e0a7f6f32

--
Hugo Kornelis, SQL Server MVP

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация