Re: T-SQL ROUND(decimal, int) vs C# Round(Decimal, Int32)
- From: Hugo Kornelis <hugo@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 30 Jan 2006 23:23:03 +0100
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
.
- References:
- Prev by Date: Re: SQL Server does not exist or access denied
- Next by Date: Re: SQL Server 2000 query time out option, what does it do?
- Previous by thread: Re: T-SQL ROUND(decimal, int) vs C# Round(Decimal, Int32)
- Next by thread: Re: T-SQL ROUND(decimal, int) vs C# Round(Decimal, Int32)
- Index(es):
Relevant Pages
|