เจ…เจธเจฒ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ…เจธเจงเจพเจฐเจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚, เจœเจพเจ‚ เจฐเฉ€เจ…เจฒ เจจเจพเจฒ เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹

เจชเฉเจฐเจ•เจพเจธเจผเจจ เจฆเฉ‡ เจฌเจพเจ…เจฆ เจฒเฉ‡เจ– PostgreSQL เจตเจฟเฉฑเจš เจŸเจพเจˆเจชเจฟเฉฐเจ— เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฌเจพเจฐเฉ‡, เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเฉ€ เจŸเจฟเฉฑเจชเจฃเฉ€ เจ…เจธเจฒ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€เจ†เจ‚ เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเฉ€เฅค เจฎเฉˆเจ‚ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ•เจฟ เจ‰เจน เจ…เจธเจฒ เจ•เจฟเจธเจฎ เจฆเฉ€ เจ•เจฟเฉฐเจจเฉ€ เจตเจพเจฐ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ‰เจชเจฒเจฌเจง SQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ‡ เจ•เฉ‹เจก 'เจคเฉ‡ เจ‡เฉฑเจ• เจเจพเจค เจฎเจพเจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ…เจ•เจธเจฐ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจนเจฎเฉ‡เจธเจผเจพ เจ‡เจธเจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจฆเฉ‡ เจ–เจผเจคเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเฉ‡. เจ…เจคเฉ‡ เจ‡เจน เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เจฟ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจจเฉฐเจฌเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจ…เจคเฉ‡ เจนเฉˆเจฌเจฐเฉ‡ เจ‰เฉฑเจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจšเฉฐเจ—เฉ‡ เจฒเฉ‡เจ– เจนเจจเฅค เจ‡เจธ เจฒเจˆ, เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ PostgreSQL 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœเฉ€เจ†เจ‚ เจฎเฉเจธเฉ€เจฌเจคเจพเจ‚ 'เจคเฉ‡ เจคเฉเจฐเฉฐเจค เจจเจœเจผเจฐ เจฎเจพเจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ, เจคเจพเจ‚ เจœเฉ‹ SQL เจ•เจฟเจŠเจฐเฉ€ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃเจพ เจ†เจธเจพเจจ เจนเฉ‹ เจธเจ•เฉ‡เฅค

PostgreSQL เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจฌเจฟเจ†เจจ เจ•เจฐเจฆเจพ เจนเฉˆ: "เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ…เจคเฉ‡ เจ—เจฃเจจเจพ เจฆเฉŒเจฐเจพเจจ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจธเจพเจฐ เจ—เจฃเจฟเจค เจ…เจคเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจตเจฟเจ—เจฟเจ†เจจ เจฆเฉ€ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจธเจผเจพเจ–เจพ เจฆเจพ เจตเจฟเจธเจผเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจ•เจตเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ" (เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจธเจฎเจเจฆเจพเจฐเฉ€ เจจเจพเจฒ เจชเจพเจ เจ• เจจเฉ‚เฉฐ 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) เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจ—เจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจฟเฉฑเจŸเฉ‡ เจตเจœเฉ‹เจ‚, เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เจธ เจจเฉฐเจฌเจฐ เจฆเจพ เจ…เฉฐเจคเจฎ เจฎเฉเฉฑเจฒ เจฌเจฟเฉฑเจŸ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจนเฉเจฃ เจ‡เจน เจฏเจพเจฆ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆ เจ•เจฟ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจจเฉฐเจฌเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เฉฑเจ• เจ…เจธเจฒ เจธเฉฐเจ–เจฟเจ† เจตเจฟเฉฑเจš เจคเจฟเฉฐเจจ เจฎเฉเฉฑเจ– เจญเจพเจ— เจนเฉเฉฐเจฆเฉ‡ เจนเจจ - เจšเจฟเฉฐเจจเฉเจน, เจฎเฉˆเจ‚เจŸเฉ€เจธเจพ เจ…เจคเฉ‡ เจ˜เจพเจคเจ•เฅค เจšเจฟเฉฐเจจเฉเจน เจชเจฒเฉฑเจธ เจœเจพเจ‚ เจฎเจพเจ‡เจจเจธ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจฟเฉฑเจŸ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจชเจฐ เจฎเฉˆเจ‚เจŸเฉ€เจธเจพ เจ…เจคเฉ‡ เจ˜เจพเจคเจ• เจฆเฉ‡ เจฌเจฟเฉฑเจŸเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ…เจธเจฒ เจ•เจฟเจธเจฎ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจฐเฉ€เจ…เจฒ เจ•เจฟเจธเจฎ เจฒเจˆ, เจฎเฉˆเจ‚เจŸเฉ€เจธเจพ เจฆเฉ€ เจฒเฉฐเจฌเจพเจˆ 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹