рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреА рдЕрд╡рд╛рд╕реНрддрд╡ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдХрд┐рдВрд╡рд╛ REAL рд╕рд╣ рд╕рд╛рд╡рдзрдЧрд┐рд░реА рдмрд╛рд│рдЧрд╛

рдкреНрд░рдХрд╛рд╢рдирд╛рдирдВрддрд░ рд▓реЗрдЦ PostgreSQL рдордзреАрд▓ рдЯрд╛рдпрдкрд┐рдВрдЧрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдмрджреНрджрд▓, рдЕрдЧрджреА рдкрд╣рд┐рд▓реА рдЯрд┐рдкреНрдкрдгреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдбрдЪрдгреАрдВрдмрджреНрджрд▓ рд╣реЛрддреА. рддреЗ REAL рдкреНрд░рдХрд╛рд░ рдХрд┐рддреА рд╡реЗрд│рд╛ рд╡рд╛рдкрд░рддрд╛рдд рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдореА рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ SQL рдХреНрд╡реЗрд░реАрдЪреНрдпрд╛ рдХреЛрдбрд╡рд░ рдЭрдЯрдкрдЯ рдирдЬрд░ рдЯрд╛рдХрдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ. рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рддреЗ рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдиреЗрд╣рдореАрдЪ рддреНрдпрд╛рдорд╛рдЧреАрд▓ рдзреЛрдХреЗ рд╕рдордЬрдд рдирд╛рд╣реАрдд. рдЖрдгрд┐ рд╣реЗ рдЕрд╕реВрдирд╣реА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЖрдгрд┐ рд╣реЕрдмреНрд░реЗрд╡рд░ рд╕рдВрдЧрдгрдХ рдореЗрдорд░реАрдордзреНрдпреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдмрджреНрджрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрд░реЛрдмрд░ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдмрд░реЗрдЪ рдЪрд╛рдВрдЧрд▓реЗ рд▓реЗрдЦ рдЖрд╣реЗрдд. рдореНрд╣рдгреВрди, рдпрд╛ рд▓реЗрдЦрд╛рдд рдореА рдЕрд╢реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ PostgreSQL рд╡рд░ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрди, рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╢реА рдирд┐рдЧрдбреАрдд рд╕рдорд╕реНрдпрд╛рдВрд╡рд░ рддреНрд╡рд░рд┐рдд рдирдЬрд░ рдЯрд╛рдХрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрди, рдЬреЗрдгреЗрдХрд░реВрди SQL рдХреНрд╡реЗрд░реА рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рддреЗ рдЯрд╛рд│рдгреЗ рд╕реЛрдкреЗ рд╣реЛрдИрд▓.

PostgreSQL рджрд╕реНрддрдРрд╡рдЬрд╛рдд рд╕рдВрдХреНрд╖рд┐рдкреНрддрдкрдгреЗ рдЕрд╕реЗ рдореНрд╣рдЯрд▓реЗ рдЖрд╣реЗ: "рдЧрдгрдиреЗрджрд░рдореНрдпрд╛рди рдЕрд╢рд╛ рддреНрд░реБрдЯреАрдВрдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪрд╛ рдкреНрд░рд╕рд╛рд░ рд╣рд╛ рдЧрдгрд┐рдд рдЖрдгрд┐ рд╕рдВрдЧрдгрдХ рд╢рд╛рд╕реНрддреНрд░рд╛рдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рд╢рд╛рдЦреЗрдЪрд╛ рд╡рд┐рд╖рдп рдЖрд╣реЗ, рдЖрдгрд┐ рддреЛ рдпреЗрдереЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА" (рд╡рд╛рдЪрдХрд╛рд▓рд╛ IEEE 754 рдорд╛рдирдХрд╛рдВрдХрдбреЗ рд╕реБрдЬреНрдЮрдкрдгреЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛рдирд╛). рдпреЗрдереЗ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддреНрд░реБрдЯреАрдВрдЪрд╛ рдЕрд░реНрде рдЖрд╣реЗ? рдЪрд▓рд╛ рддреНрдпрд╛рдВрдЪреА рдХреНрд░рдорд╛рдиреЗ рдЪрд░реНрдЪрд╛ рдХрд░реВрдпрд╛ рдЖрдгрд┐ рдореА рдкреБрдиреНрд╣рд╛ рдкреЗрди рдХрд╛ рд╣рд╛рддреА рдШреЗрддрд▓рд╛ рд╣реЗ рд▓рд╡рдХрд░рдЪ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдИрд▓.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдПрдХ рд╕рд╛рдзреА рд╡рд┐рдирдВрддреА рдШреЗрдК:

********* ╨Ч╨Р╨Я╨а╨Ю╨б *********
SELECT 0.1::REAL;
**************************
float4
--------
    0.1
(1 ╤Б╤В╤А╨╛╨║╨░)

рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╡рд┐рд╢реЗрд╖ рджрд┐рд╕рдгрд╛рд░ рдирд╛рд╣реА - рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд 0.1 рдорд┐рд│реЗрд▓. рдкрдг рдЖрддрд╛ рддреНрдпрд╛рдЪреА реж.рез рд╢реА рддреБрд▓рдирд╛ рдХрд░реВрдпрд╛:

********* ╨Ч╨Р╨Я╨а╨Ю╨б *********
SELECT 0.1::REAL = 0.1;
**************************
?column?
----------
f
(1 ╤Б╤В╤А╨╛╨║╨░)

рд╕рдорд╛рди рдирд╛рд╣реА! рдХрд╛рдп рдЪрдорддреНрдХрд╛рд░! рдкрдг рдкреБрдвреЗ, рдЕрдзрд┐рдХ. рдХреЛрдгреАрддрд░реА рдореНрд╣рдгреЗрд▓, рдорд▓рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА REAL рдЕрдкреВрд░реНрдгрд╛рдВрдХрд╛рдВрд╢реА рд╡рд╛рдИрдЯ рд╡рд╛рдЧрддреЛ, рдореНрд╣рдгреВрди рдореА рддреЗрдереЗ рдкреВрд░реНрдг рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░реЗрди рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрд░реЛрдмрд░ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдареАрдХ рд╣реЛрдИрд▓. рдареАрдХ рдЖрд╣реЗ, REAL рд╡рд░ 123 рдХреНрд░рдорд╛рдВрдХ рдЯрд╛рдХреВрдпрд╛:

********* ╨Ч╨Р╨Я╨а╨Ю╨б *********
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 REAL рдЖрдгрд┐ Double PRECISION рдЕрд╢рд╛ рджреЛрдиреНрд╣реА рдкреНрд░рдХрд╛рд░рд╛рдВрдордзреНрдпреЗ рдкреЕрдХ рдХрд░реВ. рдШрд╛рддрд╛рдВрдХрд╛рдЪреЗ рдЪрд┐рдиреНрд╣ рдЖрдгрд┐ рдореВрд▓реНрдп рд╕рд╛рд░рдЦреЗрдЪ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рдордВрдЯрд┐рд╕рд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВ (рдореА рдореБрджреНрджрд╛рдо рдШрд╛рддрд╛рдВрдХрд╛рдЪреА рдореВрд▓реНрдпреЗ рдЖрдгрд┐ рд╢реВрдиреНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рдЧрд│рддреЛ, рдХрд╛рд░рдг рддреЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕ рдЧреБрдВрддрд╛рдЧреБрдВрдд рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╕рд╛рд░рд╛рдкрд╛рд╕реВрди рд▓рдХреНрд╖ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рддрд╛рдд. рд╕рдорд╕реНрдпреЗрдмрджреНрджрд▓, рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, 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 рдкрд░реНрдпрдВрдд рдкреВрд░реНрдг рдХреЗрд▓реА рдЬрд╛рддреЗ. рдкреНрд░рдХрд╛рд░ рджреБрд╣реЗрд░реА рдЕрдЪреВрдХрддреЗрдордзреНрдпреЗ рдмрджрд▓реВрди, рдЖрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рджреГрд╢реНрдп рдЖрддрд╛ рджрд┐рд╕рдд рдирд╛рд╣реА:

********* ╨Ч╨Р╨Я╨а╨Ю╨б *********
SELECT 123456789::DOUBLE PRECISION::INT;
**************************
   int4   
-----------
123456789
(1 ╤Б╤В╤А╨╛╨║╨░)

рдЗрддрдХрдВрдЪ. рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рддреЗрдереЗ рдХреЛрдгрддреЗрд╣реА рдЪрдорддреНрдХрд╛рд░ рдирд╛рд╣реАрдд. рдкрд░рдВрддреБ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░рд╛рдЪреА рдЦрд░реЛрдЦрд░ рдХрд┐рддреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рдПрдХ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░рдг рдЖрд╣реЗ. рдХрджрд╛рдЪрд┐рдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдЪрд╛ рд╕рд░реНрд╡рд╛рдд рдореЛрдард╛ рдлрд╛рдпрджрд╛ рдореНрд╣рдгрдЬреЗ рдЕрдЪреВрдХрддреЗрдЪреНрдпрд╛ рдЬреНрдЮрд╛рдд рдиреБрдХрд╕рд╛рдирд╛рд╕рд╣ рдЧрдгрдирд╛рдЪреА рдЧрддреА. рдкрд░рдВрддреБ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рд╡рд╛рдкрд░рд╛рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рдгрд╛рд░реА рд╣реА рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕реЗрд▓ рдХрд╛? рд╡рд┐рдЪрд╛рд░ рдХрд░реВ рдирдХрд╛.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛