001    /**
002     * Implements the CFML Function round
003     */
004    package railo.runtime.functions.math;
005    
006    import java.math.BigDecimal;
007    
008    import railo.runtime.PageContext;
009    import railo.runtime.ext.function.Function;
010    
011    public final class Round implements Function {
012    
013            private static final long serialVersionUID = 3955271203445975609L;
014    
015            public static double call(PageContext pc , double number) {
016                    return call(pc,number,0);
017            }
018            
019            public static double call(PageContext pc, double number, double precision) {
020                    if(precision<=0)
021                            return StrictMath.round(number);
022                    
023                    BigDecimal bd = new BigDecimal(number);
024                    bd = bd.setScale((int)precision, BigDecimal.ROUND_HALF_UP);
025                    return bd.doubleValue();        
026            }
027    }