>? 1.3456, PreciseRound( 1.3456, .2, 1 ) >? 1.6345, PreciseRound( 1.6345, .5, 1 ) >? 1.3456, PreciseRound( 1.3456, .005, 3 ) > >*/ function to round precision >*/ Ex: PreciseRound( 123.3321, .4, 1 ) >function PreciseRound( lnValue, lnPrecVal, lnDec ) > local lnNewVal, lnRem > > */ Put into whole number and do primary rounding > */ before determining precision up/down... > lnNewVal = round( lnValue, lnDec +1 ) > > */ Now, based on precision what remainder would > */ be left in case not exactly divisible > lnRem = mod( lnNewVal, lnPrecVal ) > > */ if over the halfway precision mark, round up > if lnRem / lnPrecVal >= .5 > lnNewVal = lnNewVal + lnPrecVal - lnRem > else > lnNewVal = lnNewVal - lnRem > endif >return( round( lnNewVal, lnDec ) ) >Try this out for 2 decimal places