ะ ัะ ัะกะะ ยปะ ะผ ะ ัะกะะ ยฑ ะ ยป ะ ัะ ัั ยฐ ะก โ ะ ัะ ั
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.1 แแแแแ แฃแแ แฌแแแแแแก แกแแฎแแ แฉแแแแแ แ แแแแ แช แแแ แแแแฃแแ แแแแจแแแแแแแ 0.0(0011). แจแแกแแแแแแกแแ, แแ แ แแชแฎแแแก แกแแแแแแ แแแแจแแแแแแแ แแแแแแฃแขแแ แแก แแแฎแกแแแ แแแแจแ แจแแแชแแแแแ แแแขแแก แกแแฆแ แแแก แแแฎแแแแแ.
แแฎแแ แแ แแ แแแแแฎแกแแแแ, แ แแแแ แแแแฎแแแ แ แแแแฃแ แ แ แแชแฎแแแแ แแแแแแฃแขแแ แแก แแแฎแกแแแ แแแแจแ. แแแแแแแ แ แแ แแแฅแแแ, แ แแแแฃแ แ แ แแชแฎแแ แจแแแแแแ แกแแแ แซแแ แแแแแ แแแฌแแแแกแแแแ - แแแจแแแ, แแแแขแแกแ แแ แแฅแกแแแแแแขแ. แแแจแแแ แจแแแซแแแแ แแงแแก แแแฃแกแ แแ แแแแฃแกแ, แแแแขแแ แแแก แแ แแ แแแขแ แแฅแแก แแแแแงแแคแแแ. แแแแ แแ แแแแขแแกแแก แแ แแแฉแแแแแแแแก แแแขแแแแก แ แแแแแแแแ แแแแแกแแแฆแแ แแแ แ แแแแฃแ แ แขแแแแก แแแฎแแแแแ. แแกแ แ แแ, REAL แขแแแแกแแแแก, แแแแขแแกแแก แกแแแ แซแแ 23 แแแขแ (แแ แแ แแแขแ 1-แแก แขแแแ แแแแขแแแ แแแแขแแกแแก แแแกแแฌแงแแกแจแ แแ แจแแแแแ แแ แแก 24), แฎแแแ แแแฉแแแแแแแแ แแ แแก 8 แแแขแ. แกแฃแ แแ แแก 32 แแแขแ, แแแฃ 4 แแแแขแ. แฎแแแ DOUBLE PRECISION แขแแแแกแแแแก แแแแขแแกแแก แกแแแ แซแ แแฅแแแแ 52 แแแขแ, แฎแแแ แแแฉแแแแแแแแ แแฅแแแแ 11 แแแขแ, แกแฃแ 64 แแแขแ, แแแฃ 8 แแแแขแ. PostgreSQL แแ แฃแญแแ แก แแฎแแ แก แแชแฃแ แแแ แฌแแ แขแแแแก แ แแชแฎแแแแแก แฃแคแ แ แแแฆแแ แกแแแฃแกแขแแก.
แแแแแ แจแแคแฃแแแ แฉแแแแ แแแแแแแ แ แแชแฎแแ 0.1 แ แแแแ แช REAL, แแกแแแ DOUBLE PRECISION แขแแแแแแ. แแแแแแแแ แแแฉแแแแแแแแก แแแจแแแ แแ แแแแจแแแแแแแ แแแแแแ, แฉแแแ แงแฃแ แแแฆแแแแก แแแแแแแฎแแแแแแ แแแแขแแกแแแ (แแ แแแแแ แแฎ แแแแแแขแแแแ แแฅแกแแแแแแขแแก แแแแจแแแแแแแแแแก แแ แแฃแแแแแแ แ แแแแฃแ แ แแแแจแแแแแแแแแแก แจแแแแฎแแแก แแ แ แแจแแแ แ แแแฎแแกแแแแแแแแแก, แ แแแแแ แแกแแแ แแ แแฃแแแแแ แแแแแแแก แแ แงแฃแ แแแฆแแแแก แแจแแ แแแแ แแ แกแก. แแ แแแแแแแก แจแแกแแฎแแ, แแแแแขแแ แแกแแแแก แจแแแแฎแแแแแจแ, แแฎแแแแ IEEE 754 แกแขแแแแแ แขแ). แ แแก แแแแแฆแแแ? แแแแ แกแขแ แแฅแแแจแ แแแแชแแ โแแแแขแแกแแกโ REAL แขแแแแกแแแแก (แแแแ แแแขแแก แแแแ แแแแแแแแก 1-แแ แฃแแฎแแแแก แฌแแ แแแแแแแแแแแแแ แ แแชแฎแแแแแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แแก แแฅแแแแ 0.099999...), แฎแแแ แฅแแแแ แกแขแ แแฅแแแจแ - แแ แแแแ แกแแแฃแกแขแแก แขแแแ:
0.000110011001100110011001101
0.00011001100110011001100110011001100110011001100110011001
แชแฎแแแแ, แแก แแ แ แกแ แฃแแแแ แแแแกแฎแแแแแแฃแแ แ แแชแฎแแแ! แแแแขแแ, แจแแแแ แแแแกแแก, แแแ แแแแ แ แแชแฎแแ แจแแแแกแแแ แแฃแแแแแ แแ, แจแแกแแแแแแกแแ, แแฅแแแแ แแแแ แแแ แแแขแ (แแแแ แแแแแแแแก แแแแแแแแกแฌแแแแแแ - แแแแแแแ แแแแแจแแฃแแ). แแก แฎแกแแแก แแแฃแ แแแแแแแแแก แฉแแแแ แแแแแแแแแแแแแ. แแแแ แ แแแแแแแแจแ, แชแแแกแแฎแแ แแแแแแแแฃแแ แ แแชแฎแแ 0.1 แแแแแชแแแฃแแแ DOUBLE PRECISION แขแแแแกแแแแก แแ แจแแแแแ แจแแแแ แแแฃแแแ REAL แขแแแแก แ แแชแฎแแแแ. แแ แแแ แแแงแแแแแแแ แแแแแ แขแแแแ แแ แแแแฅแแก แแฃแกแขแแ แแก, แ แแกแแช แแแแแ แแฎแแแแแ. แแแแแ แจแแแชแแแแแ แแแแฎแแแแ แแกแ, แ แแ แงแแแแแคแแ แ แแแแแก แแแแแแแ แแแฎแแแแก:
********* ะะะะ ะะก *********
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-แแแ. แขแแแแก DOUBLE PRECISION-แแ แจแแชแแแแ, แฉแแแ แแแฆแแ แแฎแแแแแ แแ แกแชแแแแ แก:
********* ะะะะ ะะก *********
SELECT 123456789::DOUBLE PRECISION::INT;
**************************
int4
-----------
123456789
(1 ัััะพะบะฐ)
แฒกแฃแ แแก แแ แแก. แแแแแแแก, แ แแ แกแแกแฌแแฃแแแแ แแ แแ แแก. แแแแ แแ แงแแแแแคแแ แ แแฆแฌแแ แแแ แแ แแก แแแ แแ แแแแแแ, แแแคแแฅแ แแ แแแแแ, แแฃ แ แแแแแแแ แแญแแ แแแแแ แ แแแแฃแ แแ แขแแแ. แแแกแ แแแแแงแแแแแแก แแแแแ แงแแแแแแ แแแแ แฃแแแ แแขแแกแแแ แแ แแก แแแแแแแแแแแก แกแแฉแฅแแ แ แชแแแแแแ แกแแแฃแกแขแแก แแแแแ แแแแ. แแแแ แแ แแฅแแแแ แแก แฃแแแแแ แกแแแฃแ แ แกแชแแแแ แ, แ แแแแแแช แแแแแแ แแแแแก แแ แขแแแแก แฎแจแแ แแแแแงแแแแแแก? แแ แแคแแฅแ แ.
แฌแงแแ แ: www.habr.com