fix follow bug hex->dec, bin->dec, oct->dec, now all converting should work fine. I have not found any more problem with it.
Modified: trunk/reactos/subsys/system/calc/winecalc.c

Modified: trunk/reactos/subsys/system/calc/winecalc.c
--- trunk/reactos/subsys/system/calc/winecalc.c	2005-12-18 17:40:51 UTC (rev 20248)
+++ trunk/reactos/subsys/system/calc/winecalc.c	2005-12-18 17:52:28 UTC (rev 20249)
@@ -3016,6 +3016,8 @@
                 int lz = 0;
                 int exp = 0;
 
+                       
+
                 real = calc_atof(calc->buffer,old_base);
                 _stprintf(s, FMT_DESC_EXP, real);
                 // remove leading zeros in exponent
@@ -3056,6 +3058,20 @@
             // add point if missing
             // display
 
+            if (old_base != calc->numBase)
+            {
+            if (calc->buffer[0]==_T('\0'))
+            {
+                real = 0;
+            }
+            else
+            {
+                real = calc_atof(calc->buffer, old_base);
+            }           
+            _stprintf(calc->display, _T("%.f"), real);   
+            _stprintf(calc->buffer, _T("%.f"), real);               
+            }                              
+
             _tcscpy(s,calc->buffer);
             p = s;