| 
	
 | 
 Posted by mpaine on 11/20/06 22:53 
So is PRINT CAST(1 AS float)/(CAST(1 AS float)+CAST(26 AS float)) the 
best way to get the correct answer for PRINT 1/(1+26)? 
 
- Michael 
 
Roy Harvey wrote: 
> If any one of the operators had a decimal point then the results would 
> have had a decimal point.  Performaing pure integer arithmatic, as in 
> the original example, returns an integer result. 
> 
> Roy Harvey 
> Beacon Falls, CT 
> 
> On 20 Nov 2006 12:57:04 -0800, mpaine@htxml.com wrote: 
> 
> >Ok, I just figured it out: 
> > 
> > 
> > 
> >DECLARE @A int 
> >DECLARE @B int 
> >DECLARE @C float 
> > 
> >SET @A = 1 
> >SET @B = 26 
> >SET @C = CAST(@A AS float) / (CAST(@A AS float) + CAST(@B AS float)) 
> >PRINT @C 
> > 
> >This is unlike any other programming language that I have used before 
> >-- so strange. 
> > 
> >mpaine@htxml.com wrote: 
> >> Why does this T-SQL round incorrectly? 
> >> 
> >> PRINT 1/(1+26) 
> >> 
> >> when it should be 0.037037037? 
> >>  
> >> Thanks, 
> >> Michael
 
[Back to original message] 
 |