Fix a few bugs and compile errors
diff --git a/include/num.h b/include/num.h
index 8a7bad5..fbedf19 100644
--- a/include/num.h
+++ b/include/num.h
@@ -76,7 +76,7 @@
 
 #define BC_NUM_TO_CHAR(n) ((n) + '0')
 
-#define BC_NUM_SCALE(n) ((n)->len - (n)->radix)
+#define BC_NUM_SCALE(n) ((n)->len - (n)->rdx)
 
 #define BC_NUM_PRINT_WIDTH (68)
 
diff --git a/src/bc/num.c b/src/bc/num.c
index b0f0d46..81e48c2 100644
--- a/src/bc/num.c
+++ b/src/bc/num.c
@@ -349,7 +349,7 @@
     return BC_STATUS_SUCCESS;
   }
 
-  len = (size_t) ceil(log10(CHAR_BIT * sizeof(unsigned long)));
+  len = (size_t) ceil(log10(((double) ULONG_MAX) + 1.0f));
 
   status = bc_num_expand(n, len);