How to enter numerical data?

OK. I've finally found some time to play with this and here is what I have so far (using Korman's code snippet):

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'7','8','9','A'},
  {'4','5','6','B'},
  {'1','2','3','C'},
  {'0','.','e','D'},
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6,}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int value = 0;

void setup(){
  Serial.begin(9600);
}

void loop(){
  char key = keypad.getKey();              
  if (key != NO_KEY && key != 'e')         
  Serial.print (key);                            //prints input digit
  {
    
     for (int i = 3; i != 0; i--) {              //shifts digits to left
     value = value * 10 + key;
   
} if (key == 'e'){                               //prints value 
      Serial.println ();
      Serial.print (value);
      Serial.println ();}
   }
}

It displays the digits as I type them but when I hit "e" I get a result of '11211' no matter what was entered previously.