 	        	var temp:Number = Math.abs(numValue) + 1;
 	        	numStr = temp.toString();
         	}
-            numStr = decimalSeparatorTo +
-					 numStr.substring(numStr.indexOf(".") + 1);
+        	
+        	// Handle leading zero if we got one give one if not don't
+        	var position:Number = numStr.indexOf(".");
+        	var leading:String = position > 0 ? "0" : "";
+            numStr = leading + decimalSeparatorTo +
+					 numStr.substring(position + 1);
         }
         
         numStr = dataFormatter.formatPrecision(numStr, int(precision));

        // -- value --

        if (value is String)
            value = dataFormatter.parseNumberString(String(value));

        if (value === null || isNaN(Number(value)))
        {

            else
                numStr = front;
        }
        else if (Math.abs(numValue) >= 0)
        {
        	// if the value is in scientefic notation then the search for '.' 
        	// doesnot give the correct result. Adding one to the value forces 
