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 }