Fix parsing decimals
diff --git a/src/bc/num.c b/src/bc/num.c
index fdc6da5..1555046 100644
--- a/src/bc/num.c
+++ b/src/bc/num.c
@@ -787,6 +787,10 @@
   size_t end;
   char* num;
 
+  for (i = 0; val[i] == '0'; ++i);
+
+  val += i;
+
   len = strlen(val);
 
   bc_num_zero(n);
@@ -820,17 +824,17 @@
 
   ptr = strchr(val, '.');
 
-  if (ptr) radix = ptr - val;
-  else radix = len;
+  if (ptr) {
+    radix = ptr - val;
+    ++ptr;
+    n->rdx = (val + len) - ptr;
+  }
+  else {
+    radix = len;
+    n->rdx = 0;
+  }
 
-  for (i = 0; val[i] == '0'; ++i);
-
-  ptr = val + i;
-  radix -= i;
-  len -= i;
-
-  n->rdx = len - radix;
-  end = len - 1;
+  end = n->rdx - 1;
 
   for (i = 0; i < n->rdx; ++i) {
     n->num[i] = BC_NUM_FROM_CHAR(ptr[end - i]);