diff -u -r1.1 number.module
--- modules/number/number.module	5 Oct 2010 12:08:30 -0000	1.1
+++ modules/number/number.module	11 Dec 2010 23:35:36 -0000
@@ -440,6 +440,11 @@
 
   $value = isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : '';
   $value = isset($field['decimal']) ? str_replace('.', $field['decimal'], $value) : $value;
+  
+  if (isset($field['decimal']) && isset($element['#access']) && $element['#access'] === FALSE && isset($element['#value'][$field_key])) {
+    $element['#value'][$field_key] = $value;
+  }
+
   $element[$field_key] = array(
     '#type' => 'textfield',
     '#default_value' => $value,
