Please start any new threads on our new 
    site at https://forums.sqlteam.com.  We've got lots of great SQL Server
    experts to answer whatever question you can come up with. 
    
        
            
                
                    
                        
                            
                                | Author | 
                                
                                 Topic  | 
                             
                            
                                    | 
                                         bpuccha 
                                        Starting Member 
                                         
                                        
                                        34 Posts  | 
                                        
                                        
                                            
                                            
                                             Posted - 2013-01-17 : 15:37:58
                                            
  | 
                                             
                                            
                                            | I have to round off the value to 2 decimal places, I did that through round function as followsselect round(1023.245,2,0)----1023.25(But I want it as 1023.24,it should round down,instead of up)select round(1023.246,2,0)----1023.25But I dont want to round the value if the 3rd digit after the decimal is 5.So the first value should come as 1023.24We can use round(1023.245,2,1), but it always trucates the value.I need to round down only it has 5. | 
                                             
                                         
                                     | 
                             
       
                            
                       
                          
                            
                                    | 
                                     sodeep 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    7174 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-17 : 16:12:57
                                          
  | 
                                         
                                        
                                          | [code]Select case when right(cast(1023.242 as Varchar(20)),1) > 5 then round(1023.242,2) else round(1023.242,2,1) end [/code]  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     bpuccha 
                                    Starting Member 
                                     
                                    
                                    34 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-17 : 16:18:12
                                          
  | 
                                         
                                        
                                          | I can do that, but in my stored procedure i am caluculating 10 diff values based on that amt(1023.245), the calculations are pretty complex like below.So evertime i have to use case statement,Is there any other way???(@p_due_amt/2)+(@p_due_amt - (round((@p_due_amt/2),2,0)*2))  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     James K 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    3873 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-17 : 17:44:41
                                          
  | 
                                         
                                        
                                          If you include a subtract of 0.001 on all occurrences where you want this rule to be applied that should do it - for example:SELECT ROUND(1023.245-0.001,2,0) I prefer casting to decimal of the appropriate scale rather than rounding because of cases like the following where the results can overflowSELECT ROUND(999.996,2,0)Msg 8115, Level 16, State 2, Line 1Arithmetic overflow error converting expression to data type numeric.SELECT CAST(999.996 AS DECIMAL(18,2))    | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     bpuccha 
                                    Starting Member 
                                     
                                    
                                    34 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-18 : 09:55:23
                                          
  | 
                                         
                                        
                                          | Thanks for the reply. But 1023.245 is not a constant value, it varies depends on the input parameters.So i can't substract 0.001 from that value everytime.  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     James K 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    3873 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-18 : 13:16:19
                                          
  | 
                                         
                                        
                                          | I was only showing any example. It works the same way with a constant, variable, or column - i.e, subtract 0.001 and round to 2 decmials, and you will be effectively rounding down any fractional part that has a 5 in the third decimal place.  All other numbers would behave the same way as before.  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     bpuccha 
                                    Starting Member 
                                     
                                    
                                    34 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-21 : 12:22:26
                                          
  | 
                                         
                                        
                                          | I tested that,,It worked..Thank u soo much for the reply  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     James K 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    3873 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2013-01-21 : 16:00:19
                                          
  | 
                                         
                                        
                                          | You are very welcome - glad it helped.  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                            
                                | 
                                    
                                      
                                     
                                    
                                 | 
                             
                         
                     | 
                 
             
         |   
     
     
            
              
	     |  
		
			
     
          
		 |