เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเช•เชพเชฐเชจเชพ เช…เชตเชพเชธเซเชคเชตเชฟเช• เชฒเช•เซเชทเชฃเซ‹, เช…เชฅเชตเชพ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชพเชฅเซ‡ เชธเชพเชตเชšเซ‡เชค เชฐเชนเซ‹

เชชเซเชฐเช•เชพเชถเชจ เชชเช›เซ€ เชฒเซ‡เช– PostgreSQL เชฎเชพเช‚ เชŸเชพเชˆเชช เช•เชฐเชตเชพเชจเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเช“ เชตเชฟเชถเซ‡, เชชเซเชฐเชฅเชฎ เชŸเชฟเชชเซเชชเชฃเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชธเช‚เช–เซเชฏเชพเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชตเชฟเชถเซ‡ เชนเชคเซ€. เชคเซ‡เช“ REAL เชชเซเชฐเช•เชพเชฐเชจเซ‹ เช•เซ‡เชŸเชฒเซ€ เชตเชพเชฐ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เช‚ เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช‰เชชเชฒเชฌเซเชง SQL เช•เซเชตเซ‡เชฐเซ€เชเชจเชพ เช•เซ‹เชก เชชเชฐ เชเช• เชเชกเชชเซ€ เชฆเซ‡เช–เชพเชต เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช˜เชฃเซ€ เชตเชพเชฐ เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชนเช‚เชฎเซ‡เชถเชพ เชคเซ‡เชจเซ€ เชชเชพเช›เชณเชจเชพ เชœเซ‹เช–เชฎเซ‹เชจเซ‡ เชธเชฎเชœเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เช…เชจเซ‡ เช† เช เชนเช•เซ€เช•เชค เชนเซ‹เชตเชพ เช›เชคเชพเช‚ เช•เซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เช…เชจเซ‡ เชนเซ‡เชฌเซเชฐเซ‡ เชชเชฐ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชธเช‚เช–เซเชฏเชพเช“ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชธเซเชตเชฟเชงเชพเช“ เชตเชฟเชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เช˜เชฃเชพ เชธเชพเชฐเชพ เชฒเซ‡เช–เซ‹ เช›เซ‡. เชคเซ‡เชฅเซ€, เช† เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เช†เชตเซ€ เชธเซเชตเชฟเชงเชพเช“เชจเซ‡ PostgreSQL เชชเชฐ เชฒเชพเช—เซ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถ, เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซ€ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชชเชฐ เชเชกเชชเชฅเซ€ เชจเชœเชฐ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถ, เชœเซ‡เชฅเซ€ SQL เช•เซเชตเซ‡เชฐเซ€ เชกเซ‡เชตเชฒเชชเชฐเซเชธ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเซ‡ เชŸเชพเชณเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเซ‡.

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚ เชœเชฃเชพเชตเซ‡ เช›เซ‡: "เช—เชฃเชคเชฐ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช†เชตเซ€ เชญเซ‚เชฒเซ‹เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชชเซเชฐเชšเชพเชฐ เช เช—เชฃเชฟเชค เช…เชจเซ‡ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชตเชฟเชœเซเชžเชพเชจเชจเซ€ เชธเชฎเช—เซเชฐ เชถเชพเช–เชพเชจเซ‹ เชตเชฟเชทเชฏ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡ เช…เชนเซ€เช‚ เช†เชตเชฐเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชจเชฅเซ€" (เชœเซเชฏเชพเชฐเซ‡ เชตเชพเชšเช•เชจเซ‡ IEEE 754 เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชจเซ‹ เชธเชฎเชœเชฆเชพเชฐเซ€เชชเซ‚เชฐเซเชตเช• เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡). เช…เชนเซ€เช‚ เช•เชฏเชพ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชญเซ‚เชฒเซ‹เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡? เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชจเซ€ เช•เซเชฐเชฎเชฎเชพเช‚ เชšเชฐเซเชšเชพ เช•เชฐเซ€เช, เช…เชจเซ‡ เชคเซ‡ เชŸเซ‚เช‚เช• เชธเชฎเชฏเชฎเชพเช‚ เชœ เชธเซเชชเชทเซเชŸ เชฅเชˆ เชœเชถเซ‡ เช•เซ‡ เชฎเซ‡เช‚ เชซเชฐเซ€เชฅเซ€ เชชเซ‡เชจ เช•เซ‡เชฎ เชนเชพเชฅเชฎเชพเช‚ เชฒเซ€เชงเซ€.

เชšเชพเชฒเซ‹ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชเช• เชธเชฐเชณ เชตเชฟเชจเช‚เชคเซ€ เชฒเชˆเช:

********* ะ—ะะŸะ ะžะก *********
SELECT 0.1::REAL;
**************************
float4
--------
    0.1
(1 ัั‚ั€ะพะบะฐ)

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช…เชฎเชจเซ‡ เช•เช‚เชˆ เช–เชพเชธ เชฆเซ‡เช–เชพเชถเซ‡ เชจเชนเซ€เช‚ - เช…เชฎเชจเซ‡ เช…เชชเซ‡เช•เซเชทเชฟเชค 0.1 เชฎเชณเชถเซ‡. เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ 0.1 เชธเชพเชฅเซ‡ เช•เชฐเซ€เช:

********* ะ—ะะŸะ ะžะก *********
SELECT 0.1::REAL = 0.1;
**************************
?column?
----------
f
(1 ัั‚ั€ะพะบะฐ)

เชธเชฎเชพเชจ เชจเชฅเซ€! เชถเซเช‚ เชšเชฎเชคเซเช•เชพเชฐเซ‹! เชชเชฐเช‚เชคเซ เช†เช—เชณ, เชตเชงเซ. เช•เซ‹เชˆ เช•เชนเซ‡เชถเซ‡, เชนเซเช‚ เชœเชพเชฃเซเช‚ เช›เซเช‚ เช•เซ‡ REAL เช…เชชเซ‚เชฐเซเชฃเชพเช‚เช•เซ‹ เชธเชพเชฅเซ‡ เช–เชฐเชพเชฌ เชฐเซ€เชคเซ‡ เชตเชฐเซเชคเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชนเซเช‚ เชคเซเชฏเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเช‚เช–เซเชฏเชพเช“ เชฆเชพเช–เชฒ เช•เชฐเซ€เชถ, เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡. เช“เช•เซ‡, เชšเชพเชฒเซ‹ เชจเช‚เชฌเชฐ 123 เชจเซ‡ REAL เชฎเชพเช‚ เช•เชพเชธเซเชŸ เช•เชฐเซ€เช:

********* ะ—ะะŸะ ะžะก *********
SELECT 123456789::REAL::INT;
**************************
   int4   
-----------
123456792
(1 ัั‚ั€ะพะบะฐ)

เช…เชจเซ‡ เชคเซ‡ 3 เชตเชงเซ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚! เชฌเชธ, เชกเซ‡เชŸเชพเชฌเซ‡เช เช†เช–เชฐเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเซ€ เชคเซ‡ เชญเซ‚เชฒเซ€ เช—เชฏเซ‹ เช›เซ‡! เช…เชฅเชตเชพ เช†เชชเชฃเซ‡ เช•เช‚เชˆเช• เช—เซ‡เชฐเชธเชฎเชœ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช? เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เช†เช•เซƒเชคเชฟ เช•เชฐเซ€เช.

เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชฏเชพเชฆ เช•เชฐเซ€เช. เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹, เช•เซ‹เชˆเชชเชฃ เชฆเชถเชพเช‚เชถ เชธเช‚เช–เซเชฏเชพเชจเซ‡ เชฆเชธเชจเซ€ เชถเช•เซเชคเชฟเช“เชฎเชพเช‚ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชคเซ‡เชฅเซ€, เชจเช‚เชฌเชฐ 123.456 1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + โ€‹โ€‹6*10-3 เชจเซ€ เชฌเชฐเชพเชฌเชฐ เชนเชถเซ‡. เชชเชฐเช‚เชคเซ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเชฐ เชฆเซเชตเชฟเชธเช‚เช—เซ€ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชธเช‚เช–เซเชฏเชพเช“ เชธเชพเชฅเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ‡ เชฌเซ‡เชจเซ€ เชถเช•เซเชคเชฟเช“เชฎเชพเช‚ เชตเชฟเชธเซเชคเชฐเชฃเชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชฆเชฐเซเชถเชพเชตเชตเซเช‚ เชชเชกเชถเซ‡. เชคเซ‡เชฅเซ€, เชฌเชพเชˆเชจเชฐเซ€เชฎเชพเช‚ 5.625 เชจเช‚เชฌเชฐ 101.101 เชคเชฐเซ€เช•เซ‡ เชฐเชœเซ‚ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 เชจเซ€ เชฌเชฐเชพเชฌเชฐ เชนเชถเซ‡. เช…เชจเซ‡ เชœเซ‹ เชฌเซ‡เชจเซ€ เชธเช•เชพเชฐเชพเชคเซเชฎเช• เชถเช•เซเชคเชฟเช“ เชนเช‚เชฎเซ‡เชถเชพ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฆเชถเชพเช‚เชถ เชธเช‚เช–เซเชฏเชพเช“ (1, 2, 4, 8, 16, เชตเช—เซ‡เชฐเซ‡) เช†เชชเซ‡ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชตเชงเซ เชœเชŸเชฟเชฒ เช›เซ‡ (0.5, 0.25, 0.125, 0,0625, เชตเช—เซ‡เชฐเซ‡). เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เชฆเชฐเซ‡เช• เชฆเชถเชพเช‚เชถเชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชฆเซเชตเชฟเชธเช‚เช—เซ€ เช…เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชคเชฐเซ€เช•เซ‡ เชฐเชœเซ‚ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€. เช†เชฎ, เชฆเซเชตเชฟเชธเช‚เช—เซ€ เช…เชชเซ‚เชฐเซเชฃเชพเช‚เช•เชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช†เชชเชฃเซเช‚ เชจเชพเชฎเชšเซ€เชจ 0.1 เชธเชพเชฎเชฏเชฟเช• เชฎเซ‚เชฒเซเชฏ 0.0(0011) เชคเชฐเซ€เช•เซ‡ เชฆเซ‡เช–เชพเชฏ เช›เซ‡. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเชฐ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เช† เชธเช‚เช–เซเชฏเชพเชจเซเช‚ เช…เช‚เชคเชฟเชฎ เชฎเซ‚เชฒเซเชฏ เชฌเซ€เชŸ เชŠเช‚เชกเชพเชˆเชจเชพ เช†เชงเชพเชฐเซ‡ เชฌเชฆเชฒเชพเชถเซ‡.

เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชธเช‚เช–เซเชฏเชพเช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชฏเชพเชฆ เช•เชฐเชตเชพเชจเซ‹ เชนเชตเซ‡ เชธเชฎเชฏ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชนเซ€เช เชคเซ‹, เชตเชพเชธเซเชคเชตเชฟเช• เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชคเซเชฐเชฃ เชฎเซเช–เซเชฏ เชญเชพเช—เซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ - เชธเชพเช‡เชจ, เชฎเชจเซเชŸเชฟเชธเชพ เช…เชจเซ‡ เช˜เชพเชคเชพเช‚เช•. เชšเชฟเชนเซเชจ เช•เชพเช‚ เชคเซ‹ เชตเชคเซเชคเชพ เช…เชฅเชตเชพ เช“เช›เชพ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชเช• เชฌเซ€เชŸ เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชฎเซ‡เชจเซเชŸเชฟเชธเชพ เช…เชจเซ‡ เช˜เชพเชคเชพเช‚เช•เชจเชพ เชฌเชฟเชŸเซเชธเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเช•เชพเชฐ เชฆเซเชตเชพเชฐเชพ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€, REAL เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡, เชฎเซ‡เชจเซเชŸเชฟเชธเชพเชจเซ€ เชฒเช‚เชฌเชพเชˆ 23 เชฌเชฟเชŸเซเชธ เช›เซ‡ (1 เชจเซ€ เชฌเชฐเชพเชฌเชฐ เชเช• เชฌเซ€เชŸ เชฎเซ‡เชจเซเชŸเชฟเชธเชพเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เช—เชฐเซเชญเชฟเชค เชฐเซ€เชคเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎ 24 เช›เซ‡), เช…เชจเซ‡ เช˜เชพเชค 8 เชฌเชฟเชŸเซเชธ เช›เซ‡. เช•เซเชฒ 32 เชฌเชฟเชŸเซเชธ เช…เชฅเชตเชพ 4 เชฌเชพเช‡เชŸเซเชธ เช›เซ‡. เช…เชจเซ‡ เชกเชฌเชฒ เชชเซเชฐเชฟเชธเชฟเชถเชจ เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡, เชฎเซ‡เชจเซเชŸเชฟเชธเชพเชจเซ€ เชฒเช‚เชฌเชพเชˆ 52 เชฌเชฟเชŸเซเชธ เชนเชถเซ‡, เช…เชจเซ‡ เช˜เชพเชค 11 เชฌเชฟเชŸเซเชธ เชนเชถเซ‡, เช•เซเชฒ 64 เชฌเชฟเชŸเซเชธ เช…เชฅเชตเชพ 8 เชฌเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡. PostgreSQL เชซเซเชฒเซ‹เชŸเชฟเช‚เช— เชชเซ‹เชˆเชจเซเชŸ เชจเช‚เชฌเชฐเซ‹ เชฎเชพเชŸเซ‡ เช‰เชšเซเชš เชšเซ‹เช•เชธเชพเช‡เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเชคเซเช‚ เชจเชฅเซ€.

เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เชฆเชถเชพเช‚เชถ เชจเช‚เชฌเชฐ 0.1 เชจเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เช…เชจเซ‡ เชกเชฌเชฒ เชšเซ‹เช•เชธเชพเชˆ เชฌเช‚เชจเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹เชฎเชพเช‚ เชชเซ‡เช• เช•เชฐเซ€เช. เช˜เชพเชคเชพเช‚เช•เชจเซ€ เชจเชฟเชถเชพเชจเซ€ เช…เชจเซ‡ เชฎเซ‚เชฒเซเชฏ เชธเชฎเชพเชจ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเซ‡ เชฎเซ‡เชจเซเชŸเชฟเชธเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ€เชถเซเช‚ (เชนเซเช‚ เช‡เชฐเชพเชฆเชพเชชเซ‚เชฐเซเชตเช• เช˜เชพเชคเชพเช‚เช•เชจเชพ เชฎเซ‚เชฒเซเชฏเซ‹ เช…เชจเซ‡ เชถเซ‚เชจเซเชฏ เชตเชพเชธเซเชคเชตเชฟเช• เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเชพ เชฌเชฟเชจ-เชธเซเชชเชทเซเชŸ เชฒเช•เซเชทเชฃเซ‹เชจเซ‡ เช›เซ‹เชกเซ€ เชฆเช‰เช‚ เช›เซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เช“ เชธเชฎเชœเชฃเชจเซ‡ เชœเชŸเชฟเชฒ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชธเชพเชฐเชฅเซ€ เชตเชฟเชšเชฒเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชธเชฎเชธเซเชฏเชพ เชฎเชพเชŸเซ‡, เชœเซ‹ เชฐเชธ เชนเซ‹เชฏ, เชคเซ‹ IEEE 754 เชงเซ‹เชฐเชฃ เชœเซเช“). เช†เชชเชฃเชจเซ‡ เชถเซเช‚ เชฎเชณเชถเซ‡? เชŸเซ‹เชšเชจเซ€ เชฒเชพเช‡เชจเชฎเชพเช‚ เชนเซเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡ "เชฎเซ‡เชจเซเชŸเชฟเชธเชพ" เช†เชชเซ€เชถ (เชจเชœเซ€เช•เชจเซ€ เชฐเชœเซ‚ เช•เชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ‡ 1 เชฆเซเชตเชพเชฐเชพ เช›เซ‡เชฒเซเชฒเชพ เชฌเซ€เชŸเชจเชพ เชฐเชพเช‰เชจเซเชกเชฟเช‚เช—เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ€เชจเซ‡, เช…เชจเซเชฏเชฅเชพ เชคเซ‡ 0.099999 เชนเชถเซ‡...), เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชฒเชพเช‡เชจเชฎเชพเช‚ - เชฎเชพเชŸเซ‡ เชกเชฌเชฒ เชชเซเชฐเชฟเชธเชฟเชถเชจ เชชเซเชฐเช•เชพเชฐ:

0.000110011001100110011001101
0.00011001100110011001100110011001100110011001100110011001

เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เช† เชฌเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชฒเช— เชจเช‚เชฌเชฐเซ‹ เช›เซ‡! เชคเซ‡เชฅเซ€, เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชชเซเชฐเชฅเชฎ เชจเช‚เชฌเชฐ เชถเซ‚เชจเซเชฏ เชธเชพเชฅเซ‡ เช—เชพเชฆเซ€เชตเชพเชณเซ‹ เชนเชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชฅเซ€, เชฌเซ€เชœเชพ เช•เชฐเชคเชพ เชฎเซ‹เชŸเซ‹ เชนเชถเซ‡ (เช–เชพเชคเชพเชฎเชพเช‚ เชฐเชพเช‰เชจเซเชกเชฟเช‚เช— - เชเช• เชฌเซ‹เชฒเซเชกเชฎเชพเช‚ เชšเชฟเชนเซเชจเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡). เช† เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹เชฎเชพเช‚เชฅเซ€ เช…เชธเซเชชเชทเซเชŸเชคเชพ เชธเชฎเชœเชพเชตเซ‡ เช›เซ‡. เชฌเซ€เชœเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชจเช‚เชฌเชฐ 0.1 เชจเซ‡ เชกเชฌเชฒ เชชเซเชฐเซ€เชธเซ€เชเชจ เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡ เช•เชพเชธเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเช•เชพเชฐเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเชพเชฅเซ‡ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฌเช‚เชจเซ‡เชจเซ‡ เชธเชฎเชพเชจ เชชเซเชฐเช•เชพเชฐเชฎเชพเช‚ เช˜เชŸเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชฌเชฐเชพเชฌเชฐ เช›เซ‡ เชœเซ‡ เช†เชชเชฃเซ‡ เช‰เชชเชฐ เชœเซ‹เชˆเช เช›เซ€เช. เชšเชพเชฒเซ‹ เช•เซเชตเซ‡เชฐเซ€ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชฐเซ€เช เชœเซ‡เชฅเซ€ เชฌเชงเซเช‚ เชธเซเชฅเชพเชจ เชชเชฐ เช†เชตเซ‡:

********* ะ—ะะŸะ ะžะก *********
SELECT 0.1::REAL > 0.1::DOUBLE PRECISION;
**************************
?column?
----------
t
(1 ัั‚ั€ะพะบะฐ)

เช…เชจเซ‡ เช–เชฐเซ‡เช–เชฐ, เชจเช‚เชฌเชฐ 0.1 เชจเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เช…เชจเซ‡ เชกเชฌเชฒ เชชเซเชฐเชฟเชธเชฟเชถเชจเชฎเชพเช‚ เชกเชฌเชฒ เช˜เชŸเชพเชกเชพ เชฆเซเชตเชพเชฐเชพ, เช…เชฎเชจเซ‡ เช•เซ‹เชฏเชกเชพเชจเซ‹ เชœเชตเชพเชฌ เชฎเชณเซ‡ เช›เซ‡:

********* ะ—ะะŸะ ะžะก *********
SELECT 0.1::REAL::DOUBLE PRECISION;
**************************

      float8       
-------------------
0.100000001490116
(1 ัั‚ั€ะพะบะฐ)

เช† เช‰เชชเชฐเชจเชพ เชคเซเชฐเซ€เชœเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‡ เชชเชฃ เชธเชฎเชœเชพเชตเซ‡ เช›เซ‡. เชจเช‚เชฌเชฐ 123 เชธเชฐเชณ เช›เซ‡ เชฎเชจเซเชŸเชฟเชธเชพเชจเซ‡ 24 เชฌเชฟเชŸเซเชธเชฎเชพเช‚ เชซเชฟเชŸ เช•เชฐเชตเซเช‚ เช…เชถเช•เซเชฏ เช›เซ‡ (23 เชธเซเชชเชทเซเชŸ + 1 เช—เชฐเซเชญเชฟเชค). เชฎเชนเชคเซเชคเชฎ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชœเซ‡ 24 เชฌเชฟเชŸเซเชธเชฎเชพเช‚ เชซเชฟเชŸ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชคเซ‡ 224-1 = 16 เช›เซ‡. เชคเซ‡เชฅเซ€, เช…เชฎเชพเชฐเซ€ เชธเช‚เช–เซเชฏเชพ 777 เชจเชœเซ€เช•เชจเชพ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เช•เชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ 215 เชชเชฐ เช—เซ‹เชณเชพเช•เชพเชฐ เช›เซ‡. เชชเซเชฐเช•เชพเชฐเชจเซ‡ เชกเชฌเชฒ เชชเซเชฐเชฟเชธเชฟเชถเชจเชฎเชพเช‚ เชฌเชฆเชฒเซ€เชจเซ‡, เช…เชฎเซ‡ เชนเชตเซ‡ เช† เชฆเซƒเชถเซเชฏ เชœเซ‹เชˆ เชถเช•เชคเชพ เชจเชฅเซ€:

********* ะ—ะะŸะ ะžะก *********
SELECT 123456789::DOUBLE PRECISION::INT;
**************************
   int4   
-----------
123456789
(1 ัั‚ั€ะพะบะฐ)

เชฌเชธ เชเชŸเชฒเซเช‚ เชœ. เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชšเชฎเชคเซเช•เชพเชฐเซ‹ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เชตเชฐเซเชฃเชตเซ‡เชฒ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เช เชตเชฟเชšเชพเชฐเชตเชพเชจเซเช‚ เชเช• เชธเชพเชฐเซเช‚ เช•เชพเชฐเชฃ เช›เซ‡ เช•เซ‡ เชคเชฎเชจเซ‡ เช–เชฐเซ‡เช–เชฐ เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเช•เชพเชฐเชจเซ€ เช•เซ‡เชŸเชฒเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช•เชฆเชพเชš เชคเซ‡เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‹ เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ‹ เชซเชพเชฏเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เชšเซ‹เช•เชธเชพเชˆเชจเชพ เชœเชพเชฃเซ€เชคเชพ เชจเซเช•เชถเชพเชจ เชธเชพเชฅเซ‡ เช—เชฃเชคเชฐเซ€เช“เชจเซ€ เชเชกเชช. เชชเชฐเช‚เชคเซ เชถเซเช‚ เช† เชเช• เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช• เชฆเซƒเชถเซเชฏ เชนเชถเซ‡ เชœเซ‡ เช† เชชเซเชฐเช•เชพเชฐเชจเชพ เชตเชพเชฐเช‚เชตเชพเชฐ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชฏเซ‹เช—เซเชฏ เช เซ‡เชฐเชตเชถเซ‡? เชตเชฟเชšเชพเชฐเชถเซ‹ เชจเชนเซ€เช‚.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹