```
// this is before the decimal point; add the desired number of decimal places
INT extra (MAPM base, MAPM exponent)
{
MAPM u, mm1 = MM_One;
INT x;
u = ++((base.log10() * exponent).ceil());
CHAR *szdp = (CHAR*) AllocMem(u.significant_digits()+1);
u.toIntegerString(szdp);
x = atoi(szdp);
FreeMem(szdp);
return x;
}
```