MPXV7002DP Air Speed Sensor with Particle Electron

I am trying to get air speed information using the MPXV7002DP sensor. I found 2 sources here [approach 2] and here [approach 1] for this sensor and modified the code for Electron accordingly as:

int sensorPin = A0;
int sensorValue = 0;
int offset = 0;
float Vout = 0;
long P = 0;
int s2;
float v2, P2, P3; 

void setup() {

  pinMode(sensorPin, INPUT);
  Serial.begin(9600);

  int i = 0;
  int sum = 0;

  Serial.println("init...");

  //Calibrate offeset
  for (i = 0; i < 10; i++)
  {
    sensorValue = analogRead(sensorPin) - 2048; //How is this value chosen? should this be 2048??
    sum += sensorValue;
  }
  offset = sum / 10.0;
  Serial.println("Ok");

}

void loop() {

  //approach 1
  sensorValue = analogRead(sensorPin);
  Vout = (5 * sensorValue) / 4096.0; //sensor adc to voltage
  P = Vout - 0.5; //is 2.5 the offset voltage. why is this necessary?

  //approach 2
  s2 = sensorValue - offset; //with "calibration" ?
  v2 = (5 * s2) / 4096.0; //adc to v
  P2 = v2 - 2.5;

  //approach 3
  P3  = (Vout / 5.0 - 0.5) / 0.2; //transfer function from from the datasheet ; in kPa

  //Print all
  Serial.print("P = " );
  Serial.print(P * 1000);
  Serial.print("Pa");
  Serial.print("   P2: ");
  Serial.print(P2 * 1000);
  Serial.print(" Pa");
  Serial.print("   P3: ");
  Serial.print(P3 * 1000);
  Serial.println(" Pa");

  delay(1000);
}

Here's my output:

Output

Questions:

Q1. Which approach of getting the pressure (P, P2 and P3) is correct?

Q2. The abovementioned sources say that the output is in Pa. So does that mean that this sensor cannot measure atmospheric pressure since the current atm pressure of 30 inHg = 101.58kPa and this sensor caps at 2kPa (i understand it is a differential pressure sensor but, even if a close one of the opening, I get random values for P, P2 and P3, which don't correspond to the expected drop in pressure)?