user7924: My loop code is this:
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(float(sensorValue*5000.0/1023));
delay(1);        // delay in between reads for stability

When I read 5V it gives 5000 mV. When I read 3.3V pin it gives 3211 mV. When I read 1442 mV battery it gives 1392. What do you think about this situation?
NOTE: There is no any additive circuit. Just wires.

user1677: Both your measurement (e.g. using a voltmeter) and the ADC of the Arduino have a limited accuracy (cf. table 28.7 in the datasheet of the ATmega328). Therefore you should never expect them to agree to all given digits. 
Concerning the points raised in your comment:

All comments are true but it gives 5V correctly, why? 

analogRead returns a value between 0 and 1023. For all voltages above an (unknown) threshold close to 5 V, it will saturate and always return 1023, no matter what the actual input voltage is. This value is then converted to 5.000 V in your code. What you are probably seeing is just the maximum value your code can return, not an accurate measurement of a 5 V input voltage.

And my voltmeter is not corrupted.

It doesn't have to be corrupted. It will still be off. Have a look at the manual to find the nominal accuracy. (Also note that accuracy and precision are two different things and different from the number of digits of the display, assuming your voltmeter is digital.)

user3879: Your question contains a number of errors and misconceptions.
Firstly the maximum output of a successive approximation ADC (here 0x3ff) corresponds to Vref - 1 LSB
The voltage will thus be sensorValue*5000.0/1024. Note this error is less than the error of ±2LSB.
Measuring your 5V is futile, as this is the default analog reference, so the result must be 0x3ff.
Measuring the 3.3V pin will give a relative value to the 5V reference. Both are produced from commercial grade regulators with a accuracy of ±5%.
You are also confusing the precision of the reading (10 bit) with accuracy which is a best ±5% ±2LSB.
If you really want to measure voltage you should use the internal 1.1V bandgap reference. You would of course need to reduce the 5V and 3.3V to less than 1.1V. This introduces another potential error (even if you use 1% resistors), but would give more accurate results which are directly comparable. 

7924: <p>My loop code is this:</p>

<pre><code>// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(float(sensorValue*5000.0/1023));
delay(1);        // delay in between reads for stability
</code></pre>

<p>When I read 5V it gives 5000 mV. When I read 3.3V pin it gives 3211 mV. When I read 1442 mV battery it gives 1392. What do you think about this situation?</p>

<p>NOTE: There is no any additive circuit. Just wires.</p>
 1677: <p>Both your measurement (e.g. using a voltmeter) and the ADC of the Arduino have a limited accuracy (cf. table 28.7 in the <a href="http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf" rel="nofollow">datasheet of the ATmega328</a>). Therefore you should never expect them to agree to all given digits. </p>

<p>Concerning the points raised in your comment:</p>

<blockquote>
  <p>All comments are true but it gives 5V correctly, why? </p>
</blockquote>

<p><code>analogRead</code> returns a value between 0 and 1023. For all voltages above an (unknown) threshold close to 5 V, it will saturate and always return 1023, no matter what the actual input voltage is. This value is then converted to 5.000 V in your code. What you are probably seeing is just the maximum value your code can return, not an accurate measurement of a 5 V input voltage.</p>

<blockquote>
  <p>And my voltmeter is not corrupted.</p>
</blockquote>

<p>It doesn't have to be corrupted. It will still be off. Have a look at the manual to find the nominal accuracy. (Also note that <a href="https://en.wikipedia.org/wiki/Accuracy_and_precision" rel="nofollow">accuracy and precision</a> are two different things and different from the number of digits of the display, assuming your voltmeter is digital.)</p>
 3879: <p>Your question contains a number of errors and misconceptions.</p>

<p>Firstly the maximum output of a successive approximation ADC (here 0x3ff) corresponds to Vref - 1 LSB
The voltage will thus be <code>sensorValue*5000.0/1024</code>. Note this error is less than the error of ±2LSB.</p>

<p>Measuring your 5V is futile, as this is the default analog reference, so the result must be 0x3ff.</p>

<p>Measuring the 3.3V pin will give a relative value to the 5V reference. Both are produced from commercial grade regulators with a accuracy of ±5%.</p>

<p>You are also confusing the precision of the reading (10 bit) with accuracy which is a best ±5% ±2LSB.</p>

<p>If you really want to measure voltage you should use the internal 1.1V bandgap reference. You would of course need to reduce the 5V and 3.3V to less than 1.1V. This introduces another potential error (even if you use 1% resistors), but would give more accurate results which are directly comparable. </p>
