Examples: Not real code but just as demo.
BigDecimal1.Initialize(16): BigDecimal1.Pow(16) [IE 16 digits of hex]
'BigDecimal1 = 18446744073709551616
If BigDecimal1 equaled 18446744073709551615.999 it would need to round up to 18446744073709551616 [Not a real situation, just a demo of principle.]
If BigDecimal1 equaled 18446744073709551616.123 it would need to round down to 18446744073709551616
I can't get BigDecimal1.Round to do this. I have tried BigDecimal1.Divide2(1, BigDecimal1.Precision, 0) and other work-arounds but no joy.
Numberformat does this very well for Doubles but unfortunately:
Double1 = Power(16,16)
'Double1 = 1.8446744073709552E19 significantlly inaccurate for 16 digit hex using AND, OR, XOR Etc.
I hope this makes sense.
Roger