# T-SQL Simple Two Decimal Places

Hello:

I can't believe that I can't find a simple example of this on the internet, somewhere.

All I want is the number 64.25--not 64 and certainly not 64.00.

The best that I can come up with is the following, and it is giving me 64:

CAST(UPR30301.MTDHOURS_4/100 AS DECIMAL(18, 2))

How do I take "UPR30301.MTDHOURS_4/100" and have the result be 64.25?  That's all I want.  It should be very simple.

Thanks!

TBSupport
LVL 1
###### Who is Participating?

x

Microsoft SQL Server Developer, Architect, and AuthorCommented:
>How do I take "UPR30301.MTDHOURS_4/100" and have the result be 64.25
``````UPR30301.MTDHOURS_4/CAST(100 AS DECIMAL(18, 2))
``````
What you are experiencing is 'integer division', where T-SQL will interpret the division of two integers as a result that is also an integer, hence 5 / 2 = 2 and not 2.5.

To avoid this, you need to CAST either the numerator or the denominator as a decimal, and not the entire result.

0

if your in SSRS you should be able to simply right click on the field in the form and then press properties and format .... then choose the format tab and enter Format Code as "0.00"
0

Senior DeveloperCommented:
The problem is the data type precedence. Seems that you're dividing an integer by an integer. Thus the result is integer. The additional cast cannot restore the missing digits as they are not part of the result integer. See

``````DECLARE @decimal DECIMAL (19,2) = 100;
DECLARE @integer INT = 100;

SELECT	@decimal / 3,
@integer / 3,
@integer / 3.0,
CAST( @integer / 3.0 AS DECIMAL(19, 2) );
``````
0

Senior DBACommented:
CAST(UPR30301.MTDHOURS_4/100.0 AS DECIMAL(18, 2))
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.