• You say that

    Round(CDec("2.34500000"), 2) return 2.34.

    but it should be

    Round(2.34500000, 2) return 2.35

    What happens when the number is 2.35500000 does it return

    2.35 or 2.36?

    If it returns 2.36 you are encountering something called banker's rounding where a 5 will round up to an even number, but a 5 will round down if the round up number is odd. In other words the 5 will alway round in the direction of the even number whether that is up or down.

    Without the long explanation of why banker's rounding exists, most people just code around it by testing the digit they are rounding and if it is a 5 they will add a value of 1 to that digit to make sure it rounds up.

    Hope this helps.