SQL Sever 2000 documentation:
Is a floating point number data with
the following valid values: –3.40E +
38 through -1.18E – 38, 0 and 1.18E –
38 through 3.40E + 38. Storage size is
4 bytes. In SQL Server, the synonym
for real is float(24).
SQL Server 2005 documentation:
The ISO synonym for real is float(24).
EDIT:
Given what I am reading it says the precision is 7 but I can enter in my database(SQL Server 2005) max of 9 see below, as similarly stated here question no. 7.
Example: 0.180000082
What is the true precision of real and are there configuration options(ie:compatibility modes) that can affect the precision?
Your answer is on that same page you linked:
24 bits of mantissa gives you (approximately) 7 decimal digits of precision (because 2^24 ~= 10^7).
edit to add:
Notice that everyone keeps saying ‘approximately’ – this is for a reason 🙂
Binary floating point numbers and decimal literals do not necessarily play together in an intuitive manner. For background read What Every Computer Scientist Should Know About Floating-Point Arithmetic. Also note that saying ‘approximately 7 decimal digits of precision‘ is not incompatible with being able to store a value with more than 7 significant figures! It does mean however that this datatype will be unable to distinguish between 0.180000082 and 0.180000083, for example, because it isn’t actually storing the exact value of either:
The fact is that
realis the same asfloat(24), a binary floating point number with 24 bits of mantissa, and I don’t believe there’s a way to change this. Floating-point types are in general not a good choice if you want to store exact decimal quantities.