arduino xbee receiving totally wrong serial numbers

Hi, guys.
Basically I am working on a very simple code using Leonardo and xbee. The transmitter is sending constant "20"s, and the receiver to receive and print it on the serial monitor.
Here are my codings.

Transmitter:
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
Serial.println(20);
Serial.println(20);
delay(500);
}

Receiver

void setup()
{
Serial1.begin(9600);
Serial.begin(9600);
}
void loop()
{
if (Serial1.available()>0){
int val= Serial1.read();
Serial.println(val);
}
else{
Serial.println('0');
}
delay(1000);
}
}

The receiver is expected to print constant 20, but the actual number printed was like 13,10,50,48........and a loop!
Equipment used: 2 xbee, 2 Leonardo

Please, plz, plz help me ! I am really stucked and desperate! Thanks guys!

why are you adding the extra print?

    else{
      Serial.println('0');
    }

Will this receiver code echo everything sent?

void setup()
{
  Serial1.begin(9600);
  Serial.begin(9600);
}
void loop()
{
  if (Serial1.available()>0)
  {
    char myChar = Serial1.read();
    Serial.print(myChar);
  }
}