Uses my_double_greater_check from earlier article
DOUBLE MY_DOUBLE_ROUND( DOUBLE VAL, INT MULTIPLIER )
{
DOUBLE VAL_ADJ = VAL * MULTIPLIER;
IF ( MY_DOUBLE_GREATER_CHECK( VAL_ADJ FLOOR( VAL_ADJ ), 0.0 ) > 0 )
VAL = ROUND( VAL_ADJ ) / MULTIPLIER;
RETURN VAL;
}
round and floor are C math library <math.h> functions.
E.g.
double rnd_val = my_double_round( 0.000998, 1000);
rnd_val will be 0.001