I don't understand how the float fractions work very well, but here it looks like the 50 digits comes from the length of the fraction assigned to $pi, which was arbitrarily chosen, and mIRC is capable of more.
You can use this alias or some other variable containing more digits of PI than 50, and you'll get more 'precision' from your multiplication. Here's a modification of your alias for a random fraction that looks like $calc can see 314 digits of precision within internal calculations.
//var -s %len 314 , %a 0. $+ $regsubex(foo,$str(x,%len),/x/g,$r(0,9)) , %i 0 | while (%i <= %len) { var -s %pi.bf = $calc(%a * 10 ^ %i) | inc %i }
If you want, you can get 200 digits of precision from this identifier:
alias pi2 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196
The only thing that might change with $pi is that the 50th digit is a zero so it doesn't help the outcome. Plus, the next 2 digits of pi after that are '58', so a more accurate rounding would either change that 0 to a 1, or add some more digits until arriving at a non-zero digit where the following digit is 0-4.
Since mIRC doesn't have an 'antilog' function that reverses the result of $log() to find the original number, I have an $e identifier...
alias e return 2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193200305992181741359662904357290033429526059563073813232862794349076323382988075319525101901157383418793070215408914993488416750924476146066808226480016847741185374234544243710753907774499206955170
That can be used like
//var -s %a.bf $calc( 1 - 1/ $e)
And hey, I have a trailing zero in my fraction too.