I've noticed that floor(expression) attempts to evaluate 'expression' to an actual integer. How good is it? Does floor ask bfloat to compute enough precision, and then come back again with more? Is there any way to achieve this kind of evaluation, other than programming it myself?